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;
我正在尝试使用 "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;