Javascript 一次删除多个DOM节点
我有一行图像,我想删除所有从页面上删除的图像。我写了这个函数:Javascript 一次删除多个DOM节点,javascript,html,Javascript,Html,我有一行图像,我想删除所有从页面上删除的图像。我写了这个函数: var pawLineImages = document.querySelectorAll('#paw-line > img'); var pawImages = Array.prototype.slice.call(pawLineImages); var cutOffIndex = 0; var viewWidth = Math.max(document.documentElement.clientWidth, window
var pawLineImages = document.querySelectorAll('#paw-line > img');
var pawImages = Array.prototype.slice.call(pawLineImages);
var cutOffIndex = 0;
var viewWidth = Math.max(document.documentElement.clientWidth, window.innerWidth);
for (var i=0; i<pawImages.length; i++) {
var elm = pawImages[i];
var rect = elm.getBoundingClientRect();
if (rect.right - viewWidth >= 0) {
cutOffIndex = i;
break;
}
}
if (cutOffIndex > 0) {
// Here I want to remove all children [cutOffIndex ... pawImages.length]
}
var pawLineImages=document.queryselectoral('#pawline>img');
var pawImages=Array.prototype.slice.call(pawLineImages);
var CutofIndex=0;
var viewWidth=Math.max(document.documentElement.clientWidth,window.innerWidth);
对于(变量i=0;i=0){
截止指数=i;
打破
}
}
如果(截止指数>0){
//这里我要删除所有子项[CutofIndex…pawImages.length]
}
有人知道我如何同时删除cutofindex
之后的所有图像吗?我很犹豫是否在for循环中执行此操作,因为这样做可能比一次执行所有操作更昂贵。更改循环中的“如果”条件,如下所示以删除图像。无需中断循环,然后重新处理
if (rect.right - viewWidth >= 0) {
elm.parentNode.removeChild(elm);
}
或
如果有使用jQuery的选项,则保持当前循环的原样,并在循环后使用jQuery一次删除所有图像
// After the loop
$("#paw-line img").slice(cutOffIndex).remove();
如果它们没有可以删除的公共父元素,则必须一次删除一个。