Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
纯JavaScript替代jQuery';删除()_Javascript_Jquery - Fatal编程技术网

纯JavaScript替代jQuery';删除()

纯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){ 容器。移除(); 日志(“删除空元素”);

除了jQuery,JS的替代方案是什么?我有
$(“[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()
可能会发生内存泄漏。我看不到您实际清理事件处理程序和其他数据的部分。