如果条件出现,getElementsByClassName将无法使用

时间:2019-02-11 10:13:54

标签: javascript html dom element

我正在尝试获取所有带有“项目”的类名,并通过for循环和给定的字符串检查每个className的innerHTML。但是,即使条件为真,如果条件满足,也不会发生任何事情。

我已经使用javascript实现了,除了getElementsByClassName不起作用之外,其他所有功能都正常工作

function clearAndAdd(){
    var texter = document.getElementById("textBox").value;
    if (texter != ""){
        var allList = [];
        document.getElementById("textBox").value = "";
        created = 'deleteCurrent("'+texter+'")';
        document.getElementById("lister").innerHTML = document.getElementById("lister").innerHTML+"<li class='items' onclick='"+created+"'>"+texter+"<span></span></li>";
        document.getElementById("textBox").focus();
    }
}
function deleteCurrent(text){
    var allList = [];
    var list = document.getElementsByClassName("items");
    for(var i=0; i<list.length; i++){
        var value = list[i].innerHTML;
        if (value == text){
            document.getElementById("output").innerHTML = value;
            break;
        }
    }
}

<!-- HTML code -->
<body>
<div class="input-categories">
<ul id="lister">
</ul>
<input type="text" id="textBox" onblur="clearAndAdd();" />
</div>
<div id="output">
</div>
</body>

当我通过在文本中传递字符串来运行代码时,如果未执行条件,则即使值和文本也相同。有人可以帮我吗

1 个答案:

答案 0 :(得分:1)

const { ipcMain } = require('electron'); ipcMain.on('test', (event, data) => { console.log(data); }); 返回的内容包含一个list[i].innerHTML标记,因此很显然它永远不会与您要查找的文本匹配。

使用<span>属性代替innerHTML:它将仅返回文本内容:

textContent