getElementsByClassName 在 if 条件下不起作用

getElementsByClassName is not working in if condition

我正在尝试使用 "items" 获取所有类名,并通过 for 循环和给定字符串检查每个类名的 innerHTML 是否存在。但是即使条件为真,if条件也没有发生任何事情。

我已经用 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>

当我 运行 在文本中传递字符串的代码...如果条件未执行,即使值和文本相同。谁能帮我解决这个问题

list[i].innerHTML 编辑的内容 return 包含一个 <span> 标签,因此显然它永远不会匹配您要查找的文本。

而不是 innerHTML 使用 textContent 属性:那将只是 return 文本内容:

var value = list[i].textContent;