我正在尝试选择并点击不包含“.bar”类的“.foo”类的元素。
我想使用这样的代码,但它不起作用:
var inputs = document.getElementsByClassName('foo:not(bar)');
for(var i=0; i<inputs.length;i++) {
inputs[i].click();
}
感谢您的帮助!
答案 0 :(得分:5)
您可以尝试使用querySelectorAll
:
var inputs = document.querySelectorAll('.foo:not(.bar)');
或者您的代码中有jquery
:
$('.foo:not(.bar)').each( function() {
$( this ).click();
});
答案 1 :(得分:0)
您可以使用.filter()
功能首先选择没有foo
的所有bar
:
<强> CSS 强>
.foo, .bar{
padding:20px;
font-weight:bold;
}
<强>的jQuery 强>
// get all foos and begine filtering
$('.foo').filter(function(){
// show what class each div has
$(this).text($(this).attr('class'));
// translates into: IF bar not exist then return this element
return !$(this).hasClass('bar');
// color the divs yellow
}).css('background-color','yellow');
<强> HTML 强>
<div class='foo'></div>
<div class='foo bar'></div>
<div class='foo bar'></div>
<div class='foo'></div>
<div class='foo'></div>
<div class='foo bar'></div>
<div class='foo'></div>
<div class='foo bar'></div>