对table innerHTML是只读的,改变它会出错。相应的还有select也是一样。你最好用
if(the11Table.rows[line_number].cells[i].firstChild.nodeType==3)//文本节点
 t=the11Table.rows[line_number].cells[i].firsrChild.nodeValue.indexOf("hr");
if(t==-1).....

解决方案 »

  1.   

    the11Table 是什么?和TableID是两个表吗?代码本身正常,注意对象是否存在
      

  2.   

    不好意思,上面我写错了,the11Table和TableID是一个东西来的,整个代码内只是一个表格的ID.表格内的innerHTML并不是只读的,我上面的代码如果改成:
    for(var i=0;i<TableID.rows[line_number].cells.length-1;i++){
       the11Table.rows[line_number].cells[i].innerHTML += "<hr>";
    }
    则是正常的,它确实能为该行的所以列都加一个<HR>,但我想判断一下,如果那个表格列内已经有了<HR>就不加了,所以加了个
    if(the11Table.rows[line_number].cells[i].innerHTML.indexOf("hr")==-1)
    就上面的那句出错了.
      

  3.   

    那还是你把对象写错了
    <table border id="TableID">
    <tr>
    <td>a</td><td>a</td><td>a</td><td>a</td>
    </td>
    </table>
    <script>
    line_number = 0
    for(var i=0;i<TableID.rows[line_number].cells.length-1;i++){
      if(TableID.rows[line_number].cells[i].innerHTML.indexOf("hr")==-1){
    TableID.rows[line_number].cells[i].innerHTML += "<hr>";
      }
    }
    </script>
      

  4.   

    呵呵,多谢楼上的老兄,果然是开始自己写错了,现在我的代码不提示出错了,不过有一个新的问题.我所有的代码如下:
    <script>
    var is_hr = <%=is_hr%>;
    var line_number =<%=line_number%>+1;
    if(is_hr>0){
       var cells_count = the11Table.rows[line_number].cells.length;
       for(var i=0;i<cells_count;i++){
          if(the11Table.rows[line_number].cells[i].innerHTML.indexOf("hr")==-1){
    the11Table.rows[line_number].cells[i].innerHTML += "<hr>";
          }
       }
    }
    </script>
    上面其中line_number是代表本行的行数.
    我发现那个IF语句好象没起作用,本来列里面已经有了<HR>的,它还是会在那个列里面再加一个<HR>的,可这不是我的本意啊,再请高手帮忙看看,是哪里出了问题了?
      

  5.   

    大写HR
    if(the11Table.rows[line_number].cells[i].innerHTML.indexOf("HR")==-1)
      

  6.   

    没错哦,果然是大写的HR,可我明明往里面写的是小写hr,为什么要大写的HR了?