Javascript document.getElementById().children.length-无法读取属性';儿童';空的

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'

在控制台上看到此错误- VM2134:1未捕获类型错误:无法读取null的属性“children”

我想这就是事情发生的地方-

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
的元素,或者该元素尚未加载。