按类名选择元素很简单。但是,是否有可能在jQuery中选择任何没有类集的DOM元素?那种空风格选择器。
示例:
<div class="nope">
<div>You need me!</div>
</div>
<span class="foo">Not me</span>
var answer = $("selector-im-looking-for").text(); // You need me!
答案 0 :(得分:4)
我建议:
$('div').not('[class]');
JS Fiddle demo,请注意此方法无法选择<span>
元素(下面的相关HTML)。
或者,选择没有class属性的所有元素:
$('body *:not("[class]")')
JS Fiddle demo,请注意此也无法选择<span>
元素。
如果在没有标记名的情况下使用伪类选择器,则隐含通用选择器(*
),但在使用它的情况下,我更喜欢明确它,尽管它是可选的在这种情况下。
此外,要选择所有元素,在<body>
内,使用无class
属性,或并使用class属性,但不能set class-name:
$('body *').filter(function(){
return !this.className || !this.className.length;
})
JS Fiddle demo,这种方法,因为它测试缺少className
属性以及空/零长度className
属性,成功找到{{1} }。
上述演示全部使用以下HTML:
<span>
参考文献:
答案 1 :(得分:2)
您是否期待以下情况?
var answer = $("div").text(); // You need me!
或者
var answer = $(":not(.nope)").text(); // You need me!
编辑以下说明:
喜欢这个吗?
var answer = $('div:not([class])');
答案 2 :(得分:1)
答案 3 :(得分:1)
你可以使用过滤器,
$('div').filter(function(){
return $(this).attr('class') === null;
}).each(function(){
//iterate item
})