纯JavaScript替代jQuery';删除()
除了jQuery,JS的替代方案是什么?我有纯JavaScript替代jQuery';删除(),javascript,jquery,Javascript,Jquery,除了jQuery,JS的替代方案是什么?我有$(“[data holder=container]”)。remove(),但需要将其传输到纯JS 例如,我知道如果我使用类似于列表的工具,我可以使用,但这不是问题所在 console.log(“启动脚本”); var container=document.querySelector(“[dataholder=container]”); if(container.innerHTML.length==0){ 容器。移除(); 日志(“删除空元素”);
$(“[data holder=container]”)。remove()
,但需要将其传输到纯JS
例如,我知道如果我使用类似于列表的工具,我可以使用,但这不是问题所在
console.log(“启动脚本”);
var container=document.querySelector(“[dataholder=container]”);
if(container.innerHTML.length==0){
容器。移除();
日志(“删除空元素”);
}
body,p{
保证金:0;
}
p{
填充:1em;
}
第n个孩子(偶数){
背景:#669;
颜色:#ccf;
}
第n个孩子(奇数){
背景:#acf;
}
你好,世界
不要用这个
如果要删除任何DOM元素,可以引用它的父元素并将其删除。
在您的情况下,当您使用querySelector时,它将只返回第一个P标记,而不是所有具有指定属性的P标记
可以使用从选择器中删除第一个元素
container.parentNode.removeChild(container);
但是,如果您想删除所有标记,请使用下面的代码
var containers = document.querySelectorAll("[data-holder=container]");
for(var i=0;i < containers.length; i++){
if (containers[i].innerHTML.length == 0) {
containers[i].parentNode.removeChild(containers[i]);
console.log("empty elements removed");
}
}
var containers=document.querySelectorAll(“[dataholder=container]”);
对于(var i=0;i
扩展Ganesh More的回答和JaromandaX的评论:
- 使用
返回所有匹配的querySelectorAll
元素DOM
- 使用
删除元素parentNode.removeChild
console.log(“启动脚本”);
var container=document.queryselectoral(“[dataholder=container]”);
对于(var i=0;i如果要删除符合特定条件的所有元素,只需
- 使用JavaScript
querySelectorAll()
方法
- 使用数组
forEach()
方法(preference)迭代每个匹配的节点
- 使用匹配的节点使用父节点
,然后将其删除
从代码中查看下面的代码段
HTML
你好,世界
不要用这个
CSS
body,p{
保证金:0;
}
p{
填充:1em;
}
第n个孩子(偶数){
背景:#669;
颜色:#ccf;
}
第n个孩子(奇数){
背景:#acf;
}
console.log(“启动脚本”);
var container=document.queryselectoral(“[dataholder=container]”);
container.forEach((项目)=>{
item.parentNode.removeChild(item);
});
是一种纯javascript方法
然后选择元素并在其中循环
document.querySelectorAll(“[data holder=“container”]”)
.forEach(函数(容器){
如果(!container.innerHTML){container.remove();}
});
你好,世界
不要用这个
尝试querySelectorAll
以获取响应中的多个元素您的代码实际上并不等同于。remove()
可能会发生内存泄漏。我看不到您实际清理事件处理程序和其他数据的部分。