如果条件getElementsByClassName方法是行不通的

问题描述 投票:-2回答:1

我试图让所有的类名以“物品”,如果每一个类名的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>

当我运行与传递文本字符串的代码......即使值和文本都是相同的,如果不执行的条件。谁能帮我这个

javascript html dom element
1个回答
1
投票

通过list[i].innerHTML返回的内容包含<span>标签,所以很明显它永远不会匹配您要查找的文字。

相反innerHTML的使用textContent属性:将刚刚返回文本内容:

var value = list[i].textContent; 
© www.soinside.com 2019 - 2024. All rights reserved.