父节点中的childNodes中既有元素节点又有文本节点,要怎么获取其中的文本节点?

<ul id="source">

<li>北京空气质量:<b>90</b></li>

<li>上海空气质量:<b>70</b></li>

<li>天津空气质量:<b>80</b></li>

<li>广州空气质量:<b>50</b></li>

<li>深圳空气质量:<b>40</b></li>

<li>福州空气质量:<b>32</b></li>

<li>成都空气质量:<b>90</b></li>

</ul>
就像这样要怎么获取“XX空气质量”以及b元素中的文本。?

为什么这样:
var ul = document.getElementById("source");
var val = ul.childNodes[0].childNodes[0].nodeValue;
或者这样:var ul = document.getElementById("source");
var val = ul.childNode[0].nodeValue;
都获取不到li元素中的文本。求解释


弑天下
浏览 429回答 1
1回答

侃侃尔雅

按照你的思路var&nbsp;val&nbsp;=&nbsp;ul.childNodes[1].childNodes[0].nodeValue;北京空气质量:部分要这么取,因为ul和li之间的换行(空格)也是文本节点。所以li索引应该是1var&nbsp;val&nbsp;=&nbsp;ul.children[0].childNodes[0].nodeValue;或者使用上面的children不取文本节点。var ul = document.getElementById("source");var elLis = ul.getElementsByTagName('li');var elBs = ul.getElementsByTagName('b');for(var i = 0;i<elLis.length;i++){&nbsp; &nbsp; console.log(elLis[i].childNodes[0].nodeValue,elBs[i].innerText)}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript