我的HTML代码
<ul id = "1">
<li>elti</li>
<li></li>
<li></li>
<li></li>
</ul>
使用以下javascript代码删除空li:
var y = document.getElementById("1");
x = y.getElementsByTagName("li");
for( i = 0; i < x.length ; i++) {
if (x[i].innerHTML === "" ){
y.removeChild(x[i]);
}
}
但输出是这样的:
<li>elti</li>
<li></li>
你可以看到它没有删除li标签。我做错了什么?
答案 0 :(得分:4)
反向工作;否则,当您删除项目时,您将跳过检查列表中下一项:
for( i = x.length - 1; i >= 0; i--) {
if (x[i].innerHTML === "" ){
y.removeChild(x[i]);
}
}
var y = document.getElementById("1");
x = y.getElementsByTagName("li");
for( i = x.length - 1; i >= 0; i--) {
if (x[i].innerHTML === "" ){
y.removeChild(x[i]);
}
}
&#13;
<ul id = "1">
<li>elti</li>
<li></li>
<li></li>
<li></li>
</ul>
&#13;