
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 for 循环最后打印 classNames.length 你就知道了 |
2 flowfire 2017-10-17 10:09:46 +08:00 var length = classNames.length for(var i=0;i<length ; i++){ classNames[0].remove(); } |
3 morethansean 2017-10-17 10:11:15 +08:00 楼主操作骚得不知道怎么吐槽 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 傻孩子,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 这个与编程语言无关 |