//if(obj.rows[i].cells[3].
            //alert(obj.rows[i].cells[2].firstElementChild.id);
            alert(obj.rows[i].cells[2].childNodes[0].id);
            //var CCNid=obj.rows[i].cells[2].firstElementChild.id;//获得按键的ID;FF    出错地方
             //var CCNid=obj.rows[i].cells[2].childNodes[0].id;//获得按键的ID;IE       出错地方
            if(CCNid==btnID.id)
            {
            alert("找到了,ID是"+CCNid);
            var titleObj=document.getElementById(titleID);//获得文本对象
            alert(titleObj);
            //alert(obj.rows[i].cells[1]);
            titleObj.innerHTML=obj.rows[i].cells[1].innerHMTL;
            }现在是兼容了IE就不兼容FF,兼容了FF就不兼容IE,难道要做个浏览器的判断?

解决方案 »

  1.   

    用JQuery吧    这个兼容浏览器的!
      

  2.   

     IE和FireFox中的childNodes区别!!   Javascript中,相信大家都试过用getElementsByTagName和childNodes来实现对节点的遍历。但是 getElementsByTagName对复杂的DOM结构遍历明显不如用childNodes,因为childNodes能更好的处理DOM的层次结构,建议在需要进行了遍历时首先使用childNodes!!
       但是不幸的是,在IE和FireFox中childNodes有点细微的差别: 
    <head> <script type="text/javascript">
        function view(){
        var childs1=$('FirstDiv').childNodes;
        var childs2=$('SecondDiv').childNodes;  
        ;
        }
        var $=function(id)
        { return document.getElementById(id); }
        </script>
    </head>
    <html >
    <body onload="view();">   <!--第一个遍历对象,节点之间留有空格和回车-->
        <div id="FirstDiv">
        <div>1</div>
        <div>2</div>
        <div>3</div>
        </div>    <!--第二个遍历对象,除注释外,节点间无空格回车-->
        <div id="SecondDiv"><div>first</div><div>second</div><div>third</div></div>
    </html>
      
    用IE和Firefox运行会有两个不同的结果:IE的结果是3:3;而Firefox则是7:3。怎么会有这种情况呢?
    在结构上,对象1和对象2不同的是对象1的子节点间有回车或者空格,而对象2则是一行写到尾。大家都应该想到了吧,IE是将一个完整标签作为一个节点。而 Firefox除了上述的的情况外,也把一个标签的结束符“>”到下一个标签的起始符“<”之间的内容(除注释外,包括任何的文字、空格、回车、制表符)也算是一个节点了。而且这种节点也有它们自己独特的属性和值--nodeName="#text"。在实际运用中,Firefox在遍历子节点时,在for循环里不妨加上:
    if(childNode.nodeName=="#text") continue;
    或者nodeType == 1。
    这样,便跳过不需要的操作,使程序运行的更有效率。附:    * Node.ELEMENT_NODE == 1
        * Node.ATTRIBUTE_NODE == 2
        * Node.TEXT_NODE == 3
        * Node.CDATA_SECTION_NODE == 4
        * Node.ENTITY_REFERENCE_NODE == 5
        * Node.ENTITY_NODE == 6
        * Node.PROCESSING_INSTRUCTION_NODE == 7
        * Node.COMMENT_NODE == 8
        * Node.DOCUMENT_NODE == 9
        * Node.DOCUMENT_TYPE_NODE == 10
        * Node.DOCUMENT_FRAGMENT_NODE == 11
        * Node.NOTATION_NODE == 12例var node = document.documentElement.firstChild;
    if(node.nodeType != Node.COMMENT_NODE)
    ;
      

  3.   


    <table> 
        <tr> 
            <td>第一行 </td> 
            <td class="td_text"> 
            <select> 
                <option value=""> </option> 
                <option value="02" selected>a </option> 
                <option value="03">b </option> 
                <option value="01">c </option> 
            </select> 
            </td> 
        </tr> 
        <tr> 
            <td>第二行 </td> 
            <td class="td_text"> <input type="text" id="txt_road" name="txt_road" value="helloworld"/> </td> 
        </tr> 
    </table> 
    以上是页面内容,我想让td(class=td_text)的值等于当前元素的值,即下面结果 
    <table> 
        <tr> 
            <td>第一行 </td> 
            <td class="td_text">b </td> 
        </tr> 
        <tr> 
            <td>第二行 </td> 
            <td class="td_text">helloworld </td> 
        </tr> 
    </table> 
    $("td[class=\'td_text\']").each(function(idx1){
      $("input,select", $(this)).each(idx2){
      });
    });
    类似于这样  其他的呢可以再网上找相关资料  蛮多的!
      

  4.   

    试下这个看看:给td定义一个id="test",然后$("#test").html();