我的❤为何不变红呢?js代码

百变猪娃娃 2011-05-12 05:41:26
代码如下:点击❤,则从第一个❤到此❤都变红色,后面的变白色。
但我的为何不变色呢?
第二个问题,VS2008提示我的td、i都定义了两次,可我不在一个作用域啊,应该没问题啊。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>无标题页</title>
<script type="text/javascript">
function indexOf(arr,element){
//indexOf函数是取得元素在数组中的序号
for(var i=0;i<arr.length;i++){
if(element==arr[i]){
return i;
}
}
}
function initEvent(){
var tableRating = document.getElementById("tableRating");
var tds = tableRating.getElementsByTagName("td");
for(var i=0;i<tds.length;i++){
var td = tds[i];
td.onClick = tdOnClick;
td.style.cursor = "pointer";
}
}
function tdOnClick(){
//tdOnClick函数是具体执行变色功能的
var tableRating = document.getElementById("tableRating");
var tds = tableRating.getElementsByTagName("td");
var index = indexOf(tds,this);
for(var i=0;i<=index;i++){
var td = tds[i];
td.style.background = "red";
}
for(var i=index+1;i<tds.length;i++){
var td = tds[i];
td.style.background = "white";
}
}
</script>
</head>
<body onload="initEvent()">
<table id="tableRating">
<tr><td>❤</td><td>❤</td><td>❤</td><td>❤</td><td>❤</td></tr>
</table>
</body>
</html>
...全文
122 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
百变猪娃娃 2011-05-14
  • 打赏
  • 举报
回复
再等半个小时就结贴
rx78gp01 2011-05-13
  • 打赏
  • 举报
回复
程序可能转换成false类型了
百变猪娃娃 2011-05-13
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 jebeljebel 的回复:]
如果arr.length=0该函数还有返回值吗?必须保证每种情况都有return执行
[/Quote]

return -1;写到for里面就错误,何解?
生命密码 2011-05-12
  • 打赏
  • 举报
回复
如果arr.length=0该函数还有返回值吗?必须保证每种情况都有return执行
百变猪娃娃 2011-05-12
  • 打赏
  • 举报
回复
还有一个疑问:老师是这样写的:

function indexOf(arr,element){
for(var i=0;i<arr.length;i++){
if(element==arr[i]){
return i;
}
}
return -1;
}
老师说后面的return -1;也可以省略不写。


但是,我如果把return -1;写到for里面就错了,为什么不能写到for里面?
把return -1;写到for里面就错误,如下:
function indexOf(arr,element){
for(var i=0;i<arr.length;i++){
if(element==arr[i]){
return i;
}
return -1;
}
}


这是为什么????
百变猪娃娃 2011-05-12
  • 打赏
  • 举报
回复
我找到原因了
td.onClick = tdOnClick;
大小写错误,应该为:
td.onclick = tdOnClick;
rx78gp01 2011-05-12
  • 打赏
  • 举报
回复
返回值了么
百变猪娃娃 2011-05-12
  • 打赏
  • 举报
回复
我的indexOf函数是自己写的啊,js中没indexOf()
rx78gp01 2011-05-12
  • 打赏
  • 举报
回复
要么是tds.indexOf(event);
rx78gp01 2011-05-12
  • 打赏
  • 举报
回复
indexOf能这样用么。我只知道他能处理string

110,545

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧