后面您的方法firebug 报错了 document.getElementById("box").childNodes[0].childNodes[0] is undefined
var objs = box.getElementsByTagName("li"); alert(objs[0].innerHTML);
var first=function(obj) { var f=obj.childNodes[0]; var i=0; while(typeof(f)=="undefined" ||f.nodeType!=1) { f=obj.childNodes[++i]; } return f; } alert(first(document.getElementById("box")).innerHTML);
if (document.all) { var a = document.getElementById("box").childNodes[0].childNodes[0].nodeValue; var b = document.getElementById("box").childNodes[0].innerHTML; alert(a); alert(b); } else { var a = document.getElementById("box").childNodes[1].childNodes[0].nodeValue; var b = document.getElementById("box").childNodes[1].innerHTML; alert(a); alert(b); }
<ul id="box"> <li>a</li> <li>bb</li> <li>c</li> </ul> <script type="text/javascript"> window.onload = function() { var li = document.getElementById("box").childNodes; var len = li.length; for (var i = 0; i < len; i++) { if (li[i].nodeType == 1) { alert(li[i].innerHTML); } } } </script>
var b = document.getElementById("box").childNodes[1].innerHTML; 得到了第一个值 var b = document.getElementById("box").childNodes[3].innerHTML; 得到了第二个值 想问一下原因 是因为li的左右都有一个空元素吗?
document.getElementById("box").childNodes[0].innerHTML
document.getElementById("box").childNodes[0].childNodes[0] is undefined
alert(objs[0].innerHTML);
var first=function(obj) {
var f=obj.childNodes[0];
var i=0;
while(typeof(f)=="undefined" ||f.nodeType!=1) {
f=obj.childNodes[++i];
}
return f;
}
alert(first(document.getElementById("box")).innerHTML);
if (document.all)
{
var a = document.getElementById("box").childNodes[0].childNodes[0].nodeValue;
var b = document.getElementById("box").childNodes[0].innerHTML;
alert(a);
alert(b);
} else {
var a = document.getElementById("box").childNodes[1].childNodes[0].nodeValue;
var b = document.getElementById("box").childNodes[1].innerHTML;
alert(a);
alert(b);
}
<ul id="box">
<li>a</li>
<li>bb</li>
<li>c</li>
</ul> <script type="text/javascript">
window.onload = function() {
var li = document.getElementById("box").childNodes;
var len = li.length;
for (var i = 0; i < len; i++) {
if (li[i].nodeType == 1) {
alert(li[i].innerHTML);
}
}
}
</script>
得到了第一个值
var b = document.getElementById("box").childNodes[3].innerHTML;
得到了第二个值 想问一下原因 是因为li的左右都有一个空元素吗?
<ul id="box"><li>a</li><li>bb</li><li>c</li></ul>