我想知道innerText属性。考虑以下标记:
的HTML
<div class="myClass">
<div>
<div>foo</div>
</div>
</div>
<div class="myClass">
<div>
<div>bar</div>
</div>
</div>
然后,运行以下代码:
JS
var a = document.querySelectorAll('div.myClass');
//var a = document.querySelectorAll('div.myClass div div');
for (var i=0; i<a.length; i++){
console.log(a[i].innerText);
if (a[i].innerText == "foo"){
console.log("found");
}
}
FIDDLE HERE
按原样运行此代码,输出
foo
,然后空行,然后输出bar
。如果我注释掉脚本的第一行,然后取消注释第二行,然后在包含文本的div的精确级别上进行关闭,则此代码输出
foo
,found
,bar
。我的问题是:如果脚本在第一次迭代中输出
foo
,为什么a[i].innerText == "foo"
不是true
?哦,那条空线从哪里来? 最佳答案
由于myClass本身具有2 div,因此javascript将它们视为“ \ n”行,因此“ foo”不等于“ foo \ n”
但是,如果我们像这样更改代码:
if (a[i].innerText == "foo\n"){
console.log("found");
}
然后,您可以在控制台中看到找到的日志。
http://jsfiddle.net/3149ha75/5/
关于javascript - Javascript innerText细微差别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25347501/