选择器将在div中获取输入

时间:2015-11-04 15:52:37

标签: javascript jquery

在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 () {}

但这似乎没有得到它 - 我哪里错了?

3 个答案:

答案 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']")

JSFiddle

答案 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')); });