nodeValue看到value我们就知道是值了,nodeType看到Type就知道是类型了 nodevalue是取得文本值 当nodeType==3的时候才有会返回值。不然会返回一个null值(或者经常按照我们编码的习惯,会产生一个空格 空格在JS里面nodeType==3是返回true)。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
</head>
<body>
<ul id="Mylist">
<li>1111</li>
<li>11112</li>
<li>1113</li>
</ul>
</body>
</html>
我们的编码习惯一般都会缩进换行 所以造就了一个空格 。
<script>
/**nodeValue***/
var oul=document.getElementById("Mylist");
console.log(oul.childNodes[0].nodeValue);
</script>
这样不会报错,返回一个空格。
console.log(oul.childNodes[1].nodeValue);
oul.childNodes[1]返回的是li 相信到了这里你应该是要取1111这个文本了
console.log(oul.childNodes[1].childNodes[0].nodeValue);
这样你就取到了111 或者
console.log(oul.innerText?oul.children[0].innerText:oul.children[0].textContent);
都可以取到第一个li的文本值.
关于textContent和innerText的兼容问题,上一篇博客已经写好了.有兴趣的同学可以看看。