<table><tbody><tr><td>
估计是少了tbody?

解决方案 »

  1.   

    <table><tbody><tr><td>
    估计是少了tbody
      

  2.   

    唉。我做了个简单的文件来测试,结果又没有问题,可能是我哪个部分写错了吧。谢谢楼上2位,tbody在IE解析HTML时会自动加上,如下代码可以测试:<DIV id='div1'>
    <table><tr><td>aa</td></tr></table>
    </DIV>
    <script language="javascript">
    while (div1.children.length > 0)
    {
        var children = div1.children;
        for (var i=children.length-1; i>=0; i--)
        {
            var child = children[i];
            child.outerHTML = "[" + child.tagName + "]" + child.innerHTML + "[/" + child.tagName + "]";
        }
    }
    alert (div1.innerHTML);
    </script>
      

  3.   

    The outerHTML property is read-only on the HTML, HEAD, BODY, FRAMESET, TBODY, TD, TFOOT, TH, THEAD, and TR objects.
      

  4.   

    上面的测试代码我修改了一下:
    <DIV id='div1'>
    <table><tr><td>aa</td></tr></table>
    </DIV>
    <script language="javascript">
    while (div1.children.length > 0)
    {
        var children = div1.children;
        for (var i=children.length-1; i>=0; i--)
        {
            var child = children[i];
            if (child.tagName.substr (0,1) != "/")
                child.outerHTML = "[" + child.tagName + "]" + child.innerHTML;
            else
                child.outerHTML = child.innerHTML + "[" + child.tagName + "]";
        }
    }
    </script>
    这次输出更好,不过不明白为什么</table>没了???
      

  5.   

    回复人: cpunion(int argc, char** argv) ( ) 信誉:99  2004-10-11 10:43:00  得分: 0  
    -----------------------------------
    程序如下(在你的程序里加了个alert)
    当table标签被替换后,所有的标签都成了非法标签:tbody与/tbody不是对应关系,tr也不是被包在tbody里。
    <DIV id='div1'>
    <table><tr><td>aa</td></tr></table>
    </DIV>
    <script language="javascript">
    while (div1.children.length > 0)
    {
        var children = div1.children;
        for (var i=children.length-1; i>=0; i--)
        {
            alert("div children num:"+children.length+"\ndiv innerHTML:"+div1.innerHTML);
            var child = children[i];
            child.outerHTML = "[" + child.tagName + "]" + child.innerHTML + "[/" + child.tagName + "]";
        }
    }
    alert (div1.innerHTML);
    </script>
      

  6.   

    <DIV id='div1'>
    <table><tr><td>aa<<></td></tr></table>
    </DIV>
    <script language="javascript">
    alert();
    var str=div1.innerHTML;
    str=str.replace(/</g,"[");
    str=str.replace(/>/g,"]");
    alert(div1.innerHTML);
    div1.innerHTML=str;
    </script>
      

  7.   

    to JK_10000(JK) :我没有使用正则替换是因为我要有选择地替换一些标签,比如:<font size=2>aa</font>将替换为[size=2]aa[/size]
    <font color="#ff0000">bb</font>将替换为bb因为</font>将替换为不同标签,所以这样不太合适。“当table标签被替换后,所有的标签都成了非法标签:tbody与/tbody不是对应关系,tr也不是被包在tbody里。”
    =============================================
    上面那段测试好像只是</table>不正常。
    还可以使用all来获取所有的下级标签来处理,这样的话,最下级的标签会先得到,有可能可以解决这个问题。我要做的实际上就是把HTML代码自动替换成Discuz!论坛使用的代码,不知道有没有更简单的办法来实现。