interval 删除 这个是成功删除的.
function removeIds(id) {
var num = document.querySelectorAll(id).length;
var j = setInterval(function () {
if(num>0){
num--;
document.querySelector(id).remove();
}else {
clearInterval(j);
}
})
}
for 循环删除(这个是失败的)
var classNames = document.getElementsByClassName("classname");
for(var i=0;i<classNames.length; i++){
classNames[i].remove();
}
请问有什么不同吗.为什么 for 删不掉(删掉的是第 0 个).而 interval 却能删掉.
1
chairuosen 2017-10-17 09:55:37 +08:00 1
for 循环最后打印 classNames.length 你就知道了
|
2
flowfire 2017-10-17 10:09:46 +08:00 1
var length = classNames.length
for(var i=0;i<length ; i++){ classNames[0].remove(); } |
3
morethansean 2017-10-17 10:11:15 +08:00 1
楼主操作骚得不知道怎么吐槽 23333 ……你把 setInterval 改成 for 一样能删啊……
做实验要对比,除了对比参数外还有别的变量是怎么回事……一个是 NodeList 一个 HTMLCollection …… |
4
flowfire 2017-10-17 11:22:19 +08:00
@morethansean #3 23333 一波骚操作。这个方法可以用来删除奇数节点
|
5
daisyxdx 2017-10-17 12:04:53 +08:00 1
傻孩子,classNames 的 length 是会变的啊
|
6
lianyue 2017-10-17 12:13:18 +08:00 via iPhone
哈哈哈哈
|
7
enginex 2017-10-17 12:30:42 +08:00
querySelector 返回 no-live collection
|
8
shangfabao 2017-10-17 14:13:59 +08:00
你倒序删除试试?
|
9
renminghao 2017-10-17 18:06:09 +08:00
classNames[i--].remove();
|
10
SourceMan 2017-10-17 18:13:43 +08:00
说一下:这不能归结于不了解 js
|
11
chenyu8674 2017-10-18 09:25:09 +08:00
LZ 是基本功问题,JS 表示这锅我不背
|
12
wuzhizhemu569 2017-10-18 13:27:26 +08:00 via Android
这个与编程语言无关
|