日期:2014-05-16  浏览次数:20393 次

为什么用document.getElementById得不到对象总是返回null呢?什么原因

for   (var   d   =   0;   d   <   4;   d++){
    var   t_obj_current   =   document.getElementById( "t "+d);
    if   (t_obj_current   !=   null){
          t_obj_current.className= "affiche_tab_nosel ";
    }
}

<table   cellpadding= "0 "   cellspacing= "0 "   border= "0 ">
    <tr>
        <td   width= "20px "   height= "20px "   align= "center "   class= "affiche_tab_sel "   id= "t0 "> 今 </td>
        <td   width= "2px "> </td>
        <td   width= "20px "   align= "center "   class= "affiche_tab_nosel "   id= "t1 "> 昨 </td>
    <td   width= "2px "> </td>
    <td   width= "20px "   align= "center "   class= "affiche_tab_nosel "   id= "t2 "> 前 </td>
    <td   width= "2px "> </td>
    <td   width= "20px "   align= "center "   class= "affiche_tab_nosel "   id= "t3 "> ... </td>
</tr>
</table>

------解决方案--------------------
for (var d = 0; d < 4; d++){
var t_obj_current = document.getElementById( "t "+d);
if (t_obj_current != null){
t_obj_current.className= "affiche_tab_nosel ";
}
}
这段js代码应该放在下面执行。放在上面的时候页面初始化还没有完成,程序当然不知道有t1、t2这些对象了
------解决方案--------------------
呵呵,楼上的正解,我的代码全部放在下面
------解决方案--------------------
不放在下面也可以:
<html>
<head>
<script type= "text/javascript ">
function wiliner()
{
for (var d = 0; d < 4; d++){
var t_obj_current = document.getElementById( "t "+d);
alert(t_obj_current);
if (t_obj_current != null){
t_obj_current.className= "affiche_tab_nosel ";
}
}
}

</script>
</head>
<body onload= "wiliner(); ">
<table cellpadding= "0 " cellspacing= "0 " border= "0 ">
<tr>
<td width= "20px " height= "20px " align= "center " class= "affiche_tab_sel " id= "t0 "> 今 </td>
<td width= "2px "> </td>
<td width= "20px " align= "center " class= "affiche_tab_nosel " id= "t1 "> 昨 </td>
<td width= "2px "> </td>
<td width= "20px " align= "center " class= "affiche_tab_nosel " id= "t2 "> 前 </td>
<td width= "2px "> </td>
<td width= "20px " align= "center " class= "affiche_tab_nosel " id= "t3 "> ... </td>
</tr>
</table>