在javascript中输出childNode值

Leo*_*eoh 0 javascript dom

我如何使用js输出带有alert()的childNode的值; 功能或创建新元素.例如..有这个:

<ul id="main">
  <li>
   <h2>Alec</h2>
   <p>NX-01</p>
   <p>command: 2151</p>
  </li>
  <li>simple</li> 
  <li>William</li>
</ul>

<script>
var element = document.getElementById("main");
var values = element.childNodes[1].nodeValue; // the text simple this i want to output
alert('the value is:' + values);
</script>
Run Code Online (Sandbox Code Playgroud)

Mic*_*ski 6

您可以使用其innerText属性:

var element = document.getElementById("main");
var values = element.childNodes[1].innerText;
alert('the value is:' + values);
// Alec NX-01 command: 2151
Run Code Online (Sandbox Code Playgroud)

上面应该打印第一个<li>元素的所有文本内容(Alec NX-01命令:2151)

要进一步细化它并检索值Alec,请使用另一个.childNodes[1]

var element = document.getElementById("main");
var values = element.childNodes[1].childNodes[1].innerText;
alert('the value is:' + values);

// Alec
Run Code Online (Sandbox Code Playgroud)

  • 两个问题:这在浏览器之间是不一致的,因为IE <9在其`childNodes`集合中不包含仅空白文本节点,而其他浏览器则包含空白文本节点.其次,所有浏览器都不支持`innerText`(Firefox不支持它,一开始). (2认同)