获取具有一个类的元素,但不获取另一个类的元素,而无需迭代
Get elements with one class but not another without iterating
在下面的简单HTML中,我想获取class1的所有元素,而不是class2。
<li class="class1 class2"></li>
<li class="class1 class3"></li>
<li class="class1 class4"></li>
通过使用getElementsByClassName('class1')
我们可以获取所有元素,然后可能通过检查某个类是否存在来删除元素。
有没有更好的方法可以做到这一点,而无需迭代?
我发现了这篇关于获取具有多个类的元素的有趣帖子,所以我敢问:有这样的东西吗:document.getElementsByClassName("class1 !class2")
?
PS:我不想使用jQuery。
如果您不介意使用越来越兼容的.querySelectorAll()
var getClassOne = document.querySelectorAll( '.class1:not(.class2)' );
小提琴:http://jsfiddle.net/5tSGv/52/
虽然没有它,你必须以某种方式迭代类名
querySelectorAll()
返回一个静态(非实时)NodeList,表示与指定的选择器组匹配的文档元素列表。
因此,如果页面没有动态生成div,您可以使用 querySelectorAll()
.
相关文章:
- React - 从 DOM 元素获取组件以进行调试
- 如何使用 JQuery 从相对元素获取 html 文本
- 从同一域上的 iframe 中的元素获取值
- 使用本机 Javascript 从 DOM 元素获取选择器字符串
- 使用jquery从另一个元素获取使用id的输入的id
- 如何从角度元素获取编译的节点值
- 如何为不同的元素获取不同的父类
- 从 jQuery 中的子元素获取父 tr 元素
- 当浮点部分为空时,从 JQuery 中的输入元素获取数字值不起作用
- 从 XML 元素获取文本
- 从音频元素获取音频样本
- 从所选元素 html 上方的元素获取属性值
- 使用 jQuery.data 从 dom 元素获取布尔值
- 如何通过jquery从某个元素获取部分文本
- 从输入元素获取表单和表单数据对象
- 从动态元素获取挖空视图的大小
- 从中继器循环中显示的子自定义元素获取正确的上下文.奥蕾莉亚
- 如何使用 JavaScript 或 JQuery 从输入类型=文件 html 元素获取文件名
- 从父元素获取 ID 并将它们放在数组中
- 尝试从选项元素获取 HTML