在javascript中循环子节点


if(event.target.parentNode.className.indexOf('feat_img')!==1){
    var innodes=event.target.parentNode.firstChild; 

    while(event.target.parentNode.childNodes){
            console.log(innodes);
            if(innodes.className=='img_preview'){
                event.target.parentNode.removeChild(innodes);
            }
            innodes=event.target.parentNode.nextSibling;
    }
}

这似乎不起作用。我做得对吗?

这就是您想要的吗?我循环浏览子项并删除所有img_preview。

var outer = document.getElementById('outer');
for (var i = 0; i < outer.childNodes.length; i++) {
    var inner = outer.childNodes[i];
    if (inner.className === 'img_preview') {
        outer.removeChild(inner);
    }
}

注意:我更改了循环结束条件,这样我们就可以相当确定它是否终止(在原始代码中,如果有一个子代不是img_preview,我们可能会陷入无限循环(。

对于希望使用每个的人

var outer = document.getElementById('outer');
Array.prototype.forEach.call(outer, function (item) {
    // do your suff..
});

最新更新