如何把一个HTMLElement转化为字符串? <table><tbody><tr><td>估计是少了tbody? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <table><tbody><tr><td>估计是少了tbody 唉。我做了个简单的文件来测试,结果又没有问题,可能是我哪个部分写错了吧。谢谢楼上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> The outerHTML property is read-only on the HTML, HEAD, BODY, FRAMESET, TBODY, TD, TFOOT, TH, THEAD, and TR objects. 上面的测试代码我修改了一下:<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>没了??? 回复人: 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> <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> 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!论坛使用的代码,不知道有没有更简单的办法来实现。 这两个不同构造函数为何对象的instanceof都返回true? 怎么样将firedebug加入到firefox中进行调试 在线求牛人:Javascript如何直接读取cookies子键值! jquery如何获取元素之外的事件。??? Aptana Studio 怎么用 js 控制div是位置 菜鸟问题 回复“引用”功能? Ext2.0的问题,会的请进 急问<A href="javascript:openscriphtml()">..</A>中的js怎么理解,怎么用呢? 如果使一个页面每三十秒刷新一次 请教frameset嵌套iframe的问题。 用js可否使用VB定义的类呢?
估计是少了tbody
<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>
<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>没了???
-----------------------------------
程序如下(在你的程序里加了个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>
<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>
<font color="#ff0000">bb</font>将替换为bb因为</font>将替换为不同标签,所以这样不太合适。“当table标签被替换后,所有的标签都成了非法标签:tbody与/tbody不是对应关系,tr也不是被包在tbody里。”
=============================================
上面那段测试好像只是</table>不正常。
还可以使用all来获取所有的下级标签来处理,这样的话,最下级的标签会先得到,有可能可以解决这个问题。我要做的实际上就是把HTML代码自动替换成Discuz!论坛使用的代码,不知道有没有更简单的办法来实现。