DOM返回了childNode的值

问题描述 投票:0回答:1

这是HTML:

<ul class="drum">
 <li>A<span>span text A</span></li>
 <li>S<span>span text S</span></li>
 <li>D<span>span text D</span></li>
</ul>

这是JS:

let ul = document.querySelectorAll('.drum li');
let ulLen = ul.length;
let arr = [];  
for(var i=0; i<ulLen; i++) {
 if(ul[i].childNodes[0] === '\"S\"') {
  console.log('why is this not returning?');
 }
}

我试图匹配childnodeS.值当我在console.log时ul[i].childNodes[0]我可以看到返回值是“S”但我只是不明白为什么if条件不满意。我错过了什么?我也尝试了firstChild属性,但仍然不能满足条件。

javascript dom
1个回答
2
投票

您正在将节点与字符串进行比较,您必须获取节点的文本内容然后进行比较。另外,删除双引号。

let ul = document.querySelectorAll('.drum li');
let ulLen = ul.length;
let arr = [];  
for(var i=0; i<ulLen; i++) {
 if(ul[i].childNodes[0].textContent === 'S') {
  console.log('why is this not returning?');
 }
}
<ul class="drum">
 <li>A<span>span text A</span></li>
 <li>S<span>span text S</span></li>
 <li>D<span>span text D</span></li>
</ul>
© www.soinside.com 2019 - 2024. All rights reserved.