我一直是0x1234
的TypeError。因此,在没有TypeError: null is not an object (evaluating 'value.querySelector('h1').nextElementSibling.tagName')
的浏览器上执行编译时会出错。换句话说,在&& value.querySelectorAll('hr')[0]
中执行编译不是错误。总之,为什么TypeError在执行时在没有&& value.querySelectorAll('hr')[0]
的浏览器上进行编译?
&& value.querySelectorAll('hr')[0]
let countOfSetId = 0;
function nav() {
for (let value of document.querySelectorAll('#article ol li')) {
console.log(value);
if (value.id == false
&& value.querySelector('h1')
&& value.querySelector('hr') // TypeError, when toggle comment this line.
&& value.querySelector('h1').nextElementSibling.tagName == 'HR') {
console.log(1);
value.setAttribute('id', 'li-' + countOfSetId);
countOfSetId++;
} else {
console.log(0);
}
}
}
答案 0 :(得分:0)
看看这部分。
<li>
<h1>New list of article(none-id).</h1>
</li>
这里h1没有nextElementSibling
。
因此nextElementSibling.tagName
会引发错误。