JS:设置超时不适用于子元素计数



我想知道当我使用 childElementCount 运行超时时,chrome 开发控制台中的这个神秘输出是什么,每次重新运行函数时它似乎都会递增 1。

function Eggs(){
var f = document.getElementById("x").childElementCount;
console.log(f);
}
setTimeout(Eggs(), 3000);
/* output should be:
0
8
in the chrome console */
<!DOCTYPE html>
<html>
<body>
    <div>
        <div>
            <div id="x"></div>
        </div>
    </div>
</body>
</html>

它工作得很好,给了我正确的孩子数量

尝试如下:

let eggs = function () {
    let el = document.getElementById('x');
    console.log(el.childElementCount);
};
setTimeout(eggs, 3000);

函数名称必须在驼峰大小写中!

eggs变量存储函数,但eggs() - 给我们调用它的结果(函数返回的结果(。

let eggs = function () {
    return function () {
        let el = document.getElementById('x');
        console.log(el.childElementCount);
    };
};
setTimeout(eggs(), 3000);

setTimeout(function Eggs(){
var f = document.getElementById('x').childElementCount;
console.log(f)
},3000);
<!DOCTYPE html>
<html>
<body>
    <div>
        <div>
            <div id="x"></div>
        </div>
    </div>
</body>
</html>

相关内容

  • 没有找到相关文章