首页 > 解决方案 > 如何检查节点列表中是否包含没有内容的元素?

问题描述

我希望我的函数首先检查是否有一个没有内容的元素,然后如果条件为真 - 执行代码,否则不运行该函数。我只是不知道如何检查是否有一个没有内容的元素。

function randomBlock(){
    let random = Math.floor(Math.random() * blocks.length)
    if(blocks[random].textContent == ""){
        blocks[random].textContent = "O"
    } else{
        randomBlock()
    } 
}

标签: javascriptif-statementnodelist

解决方案


过滤NodeList到空的,然后选择一个随机元素。过滤后,您可以检查是否有可用的空块。

function randomBlock() {
    let emptyBlocks = [...blocks].filter(block => block.textContent.trim() == "");
    if (emptyBlocks.length > 0) {
        let random = Math.floor(Math.random() * emptyBlocks.length);
        emptyBlocks[random].textContent = "O";
    } else {
        console.log("No empty blocks left");
    }
}

推荐阅读