日期:2014-05-17  浏览次数:20556 次

一个JS在IE和FireFox中执行效果
怪!JS在FireFox执行对,在IE执行错

我有一个节目的分类,在页面中循环取出,循环大致如下:
<?
 while($Sort = $db->db_fetch_array()){
  echo "<tr>" .
  "<td width=109 name='sort' id='".$Sort["SORT_ID"]."'>".
  "<a href=# onclick=changeSortBgColor(".$Sort["SORT_ID"].")>".$Sort["SORT_NAME"]<a>".
  "</td>" .
  "</tr>";
 }
?>

点击分类,将选中分类的背景色调整为#E9F4FC,未选中的为无色,以JS实现
JS如下:

<script language="javascript">
function changeSortBgColor(sortId){
var sort = document.getElementsByName("sort");
for(var i = 0; i < sort.length; i++){
sort[i].bgColor = "";
}
var checkedSort = document.getElementById(sortId);
  sort.bgColor = "#E9F4FC";
}
</script>

该功能在FireFox下正常执行,但在IE6下,在JS中alert(sort.length);每次得到都是0,导致页面上被点过的分类背景色全变为#E9F4FC,请各位帮忙解决一下,不胜感激!

------解决方案--------------------
td 没name属性
------解决方案--------------------

楼上正解 ,建议获取到 table 后 ,再去遍历吧