Tho*_*ldi 0 javascript jquery dom
大家好,
实际上,当我试图删除一些DOM元素并且我不明白时,我得到了"c.replace不是函数".
我想删除一些
var liste=document.getElementById("tabs").getElementsByTagName("li");
for(i=0;i<liste.length;i++)
{
if(liste[i].id==2)
{
$("#tabs").detach(liste[i]);
}
}
Run Code Online (Sandbox Code Playgroud)
我试过.detach和.remove,但它是一样的.我的jQuery版本是1.7.1.min.js.
感谢帮助.
小智 5
NodeLIst上的迭代次序
在删除元素时对正在修改的NodeList进行正向迭代可能是个问题.从DOM中删除元素时反向迭代.
误用 detach()
此外,参数.detach()不执行嵌套查找,而是充当jQuery对象中现有元素的过滤器,并且应该传递一个字符串.看来你确实要分离的li,这将意味着你需要调用.detach()的li本身......
var liste=document.getElementById("tabs").getElementsByTagName("li");
var i = liste.length
while(i--) {
if(liste[i].id==2) {
$(liste[i]).detach();
}
}
Run Code Online (Sandbox Code Playgroud)
remove() 可能是首选
请记住,如果使用.detach(),则保留任何jQuery数据.如果你没有进一步使用该元素,你应该使用.remove().
// ...
$(liste[i]).remove(); // clean up all data
Run Code Online (Sandbox Code Playgroud)
代码减少
最后,因为你正在使用jQuery,你可以在选择器中完成所有这些...
$('#tabs li[id=2]').remove(); // or .detach() if needed
Run Code Online (Sandbox Code Playgroud)
有效的id属性
关于ID,请记住这些项目......
在上面的选择器中,我使用了属性等于过滤器,因此它可以工作,但你应该使用有效的HTML来避免其他地方的问题.
| 归档时间: |
|
| 查看次数: |
4636 次 |
| 最近记录: |