在jQuery中,我希望获得带有特定类的div中的radio和checkbox的所有输入控件。除非在div中有一个div与另一个集合类。
例如
<div class="content-wrap">
<div><input id="chk1" type="checkbox"/></div>
<div class="normalCheck"><input id="chk2" type="checkbox" /></div>
</div>
在这个例子中,我想在&#39; chk1&#39;上执行一些功能。但不是&#39; chk2&#39;
我试过这个
$('.content-wrap,.profile-acct-btn').not('.normalCheck').('input[type="checkbox"],input[type="radio"]').each(function () {}
但这似乎没有得到它 - 我哪里错了?
答案 0 :(得分:2)
而不是jQuery的not()
函数,您可以使用CSS :not()
伪类根据其类过滤掉某些<div>
元素:
$("div.content-wrap div:not(.normalCheck) input[type='checkbox']")
如果由于某种原因你不想使用那个伪类,你仍然可以使用$.find()
在jQuery中做同样的事情:
$("div.content-wrap > div").not("div.normalCheck").find("input[type='checkbox']")
答案 1 :(得分:0)
在CSS中:广播和复选框类型的输入字段的选择器如下所示
.content-wrap > div > input[type="radio"], .content-wrap > div:not(.normalCheck) > input[type="checkbox"]
在jQuery中,你应该使用上面的选择器:
var radioCheckboxInput = $('.content-wrap > div > input[type="radio"], .content-wrap > div:not(.normalCheck) > input[type="checkbox"]');
实现此选择器就像使用变量radioCheckboxInput
一样简单,如下所示:
radioCheckboxInput.each(function(){
//... Do something
});
答案 2 :(得分:0)
这是js代码,可以根据需要使用
$('.content-wrap,.profile-acct-btn').find('input[type="checkbox"],input[type="radio"]').not('.normalCheck input').each(function () { alert($(this).attr('id')); });