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 这个与编程语言无关 |