javascript - childNode 的 DOM 返回值
问题描述
这是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?');
}
}
我试图匹配当我 console.log 的childnode
值时,我可以看到返回值为“S”,但我只是不明白为什么不满足条件。我错过了什么?我也试过这个属性,但仍然不能满足条件。 S.
ul[i].childNodes[0]
if
firstChild
解决方案
您正在将节点与字符串进行比较,您必须获取节点的文本内容然后进行比较。另外,删除双引号。
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>
推荐阅读
- html - 带有百分比参数的最大 CSS 函数不适用于 th 元素
- reactjs - Redux 表单字段未填充值
- python - 如何解决使用setuptools从pytorch的cpp扩展获取python文件失败的问题?
- javascript - 从 DynamoDb 中删除列表项
- python - /posts/new/ 处的 IntegrityError
- c++ - WinHTTP:如何强制关闭连接?
- openshift - Open shift internal docker registry的虚拟IP与所有master和nodes失去连接
- git - 不了解 Git 忽略
- javascript - 有没有办法将全局变量传递给 $$eval 函数?
- java - 如何在java中的pdf上打印树?