firefox对DOM的支持问题

来源:百度知道 编辑:UC知道 时间:2024/05/29 23:15:45
随便写了一段javascript来测试firefox对dom的支持,发现在访问标签的文本内容时有问题
以下是代码摘要:
<ul id="list">
<li>one</li><li>two</li><li>three</li><li>four</li>
</ul>
<input id="newText" type="text" value="12"/>
<button onclick="changeText(document.getElementById('newText').value);">change text</button>

function change(newText)
{

var list=document.getElementById("list");
var li1=list.firstChild;
li1.firstChild.data=newText;
alert(li1.childNodes.item(0).data);
}

我的目的是在单击按钮后将第一个<li>标签内的文本修改为文本框中的值。

这个程序在IE6.0中顺利运行,但到了firefox3.0中却提示li1.firstChild为null,li1.childNodes.item(0)也是null.

令我十分不解。哪位高手能帮我解开这个谜团?如有满意答案,追加50分!
function changeText(newText) 我写错了,问题如故!

没这样抓过...

不过好像FF的DOM对标签内的空白是有TextNode定义的

可能 <ul><li></li></ul>

<ul id="one"><li>aaa</li></ul>
<script type="text/javascript">
var one = document.getElementById("one");
alert(one.childNodes.length); // 1
alert(one.childNodes.item(0)); // LI OBJECT
</script>

修改下..用缩进来

<ul id="one">
<li>aaa</li>
</ul>
<script type="text/javascript">
var one = document.getElementById("one");
alert(one.childNodes.length); // 3
alert(one.childNodes.item(0)); // TextNode
alert(one.childNodes.item(1)); // LI OBJECT
alert(one.childNodes.item(2)); // TextNode
</script>

我建议用个JS的框架来做....有些框架实现了XPATH来截取DOM对象...这个就不用自己判断了!