如何移除指定类的所有元素?及将指定JS代码转为CoffeeScript
嘿,我来帮你搞定这两个问题!
移除页面中指定类的所有元素
其实有几种实用的方法,我给你整理两个常用的:
- 动态集合循环法:就是你原本用的思路,
getElementsByClassName返回的是动态HTMLCollection,每次移除元素后集合会自动更新,所以只要循环移除第一个元素,直到集合为空就完成了,你的原JavaScript代码完全是这个思路,没问题的。 - 更简洁的现代写法:如果不需要兼容特别老旧的浏览器,可以用
querySelectorAll配合remove()方法,代码更清爽直观:
这里document.querySelectorAll('.hi').forEach(element => element.remove())querySelectorAll返回静态NodeList,现代浏览器都支持它的forEach方法;element.remove()是DOM自带的方法,直接移除元素本身,不用再找父节点调用removeChild,步骤更简化。
将JavaScript代码转换为CoffeeScript
你的那段JS转成CoffeeScript其实很简单,CoffeeScript是JS的语法糖,很多冗余符号都能省略,转换后的代码是:
paras = document.getElementsByClassName 'hi' while paras[0] paras[0].parentNode.removeChild paras[0]
给你拆解下转换的关键点:
- CoffeeScript不需要用
var声明变量,直接赋值即可; - 函数调用的括号如果参数清晰可以省略,比如
document.getElementsByClassName('hi')可以写成document.getElementsByClassName 'hi'; - while循环的条件不需要加括号,直接写判断表达式;
- 语句结尾不需要加分号,CoffeeScript会自动处理。
内容的提问来源于stack exchange,提问作者Aaron Bratcher
相关产品推荐
相关产品推荐

