Javascript document.getElementById().children.length-无法读取属性';儿童';空的
在控制台上看到此错误- VM2134:1未捕获类型错误:无法读取null的属性“children” 我想这就是事情发生的地方-Javascript document.getElementById().children.length-无法读取属性';儿童';空的,javascript,Javascript,在控制台上看到此错误- VM2134:1未捕获类型错误:无法读取null的属性“children” 我想这就是事情发生的地方- if (document.getElementById('confirmMsg').children.length > 0) { document.getElementById('confirm').classList.add('ui-state-error') } else { document.getElementById('confirm'
if (document.getElementById('confirmMsg').children.length > 0) {
document.getElementById('confirm').classList.add('ui-state-error')
}
else {
document.getElementById('confirm').classList.remove('ui-state-error')
}
我不熟悉javascript,但我觉得我需要确保元素存在&有子元素?请帮助解决此问题。谢谢大家! 您是将此代码放在实际HTML之前还是之后?因为如果元素尚未加载,这可能会生成错误 更明显的答案是“嘿,DOM中没有这样的ID”: 最后,你可以做一个测试来避免这个错误 大致如下:
function foo() {
if (document.getElementById('confirmMsg')) {
if (document.getElementById('confirmMsg').children.length > 0) {
document.getElementById('confirm').classList.add('ui-state-error')
} else {
document.getElementById('confirm').classList.remove('ui-state-error')
}
} else setTimeout(foo, 1000);
}
将调用自身,直到元素存在,然后执行预期的操作
我知道一定有更干净、更漂亮的方法可以做到这一点,我只是想把想法记下来:)您的页面上没有id为
confirmMsg
的元素,或者该元素尚未加载。