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");
}
}
このコードをそのまま実行すると、foo、および空行が出力され、次にbar.
スクリプトの最初の行をコメントアウトし、テキストを含む div の正確なレベルでクローズインする 2 番目の行のコメントを外すと、このコードfooは , found, を出力しますbar。
ここでの私の質問は次のとおりです。最初の反復でスクリプトが出力する場合、fooなぜそうでa[i].innerText == "foo"はないのtrueですか? ああ、その空の行はどこから来ているのですか?