以下のコードでエラーが発生します。エラーは言う。お知らせ下さい。タグ "h2"が見つかるまで、チェーンの上に移動したい。DOM travesal javascriptのエラー
"Uncaught TypeError: Cannot read property 'querySelector' of null"
var z =document.querySelector('input[id="nf-field-448"]');
x=z.parentElement;
while(!x.querySelector('h2'))
{
if(x.previousElementSibling !== "null")
{
x = x.previousElementSibling;
}
else
{
x = x.parentElement;
}
}
alert('true');
}
親H2がなければ、最終的にDOMツリーの一番上に到達し、 'x.previousElementSibling'と' x.parentElement'の両方がnullを返します。 'x.querySelector(...)'を実行しようとすると、エラーがスローされます。 [*最小で完全で検証可能なサンプルを作成する方法*](https://stackoverflow.com/help/mcve)を参照してください。 – RobG
コードがH2の子孫を持つ最初の要素(つまり 'x.querySelector( 'h2')'が真を返す)に行くようですが、最初に見つかったH2で停止しません(つまり、 'x.tagName .toLowerCase()== 'h2'')。 – RobG