<div id="customerServices">
<div id="pnlCustomerServices_Container">
<!-- and many others divs...... -->
<div id="s1_Container">
<div id="ext-gen32">
<!-- and many others divs........ -->
<input type="checkbox" id="s1"
name="s1" class=" x-form-checkbox and_many_classes..... parent" value="s1">
<label for="s1" class="x-form-cb-label font-bold"
id="ext-gen33">Label1Text</label>
<!-- and many others divs........ --->
</div>
</div>
<div id="s2_Container">
<div id="ext-gen33">
<!-- and many others divs........ -->
<input type="checkbox" id="s2"
name="s2" class=" x-form-checkbox and_many_classes..... parent" value="s2">
<label for="s2" class="x-form-cb-label font-bold"
id="ext-gen34">Label1Text</label>
<!-- and many others divs........ --->
</div>
</div>
</div>
</div>
我想找到所有input checkBox
(在这种情况下为input checkBox id="s1"
和input checkBox id="s2"
),其属性类包含“parent”并嵌套在 {{ 1}}。
但困难的是,div id="customerServices"
和customerServices
之间有多少个div,以及输入的属性类有多少个值。
更新: 前段时间我使用的是以下代码。但它对当前任务无效。
input class = "parent"
UPDATE2:
还有一件事。如何找到没有属性$('#customerServices input:checkbox[class="parent"]');
class=parent
答案 0 :(得分:2)
出了什么问题:
$('.parent')
或
$('input .parent')
要更新:
$('#customerServices input:checkbox[class="parent"]');
选中class
等于“parent”的复选框。但是您的class属性包含更多内容。你需要:
$('#customerServices input:checkbox.parent');
更新2:
$('#customerServices input:checkbox:not(.parent)');
答案 1 :(得分:2)
您应该可以使用
选择所需的元素$("input:checkbox.parent")
参与<div id="customerServices">
没有明显的理由,但如果你想减少DOM遍历,你可以使用更严格的
$("#customerServices input:checkbox.parent")
最后,您之前的
解决方案$('#customerServices input:checkbox[class="parent"]')
不起作用,因为它只选择仅具有parent
类的元素,而不选择那些具有其他类的元素。因为有这个确切的要求是非常不寻常的(我从来没有在野外看到它),恕我直言这样的选择器应该被认为是一个错误(即使它在编写时有效)。
答案 2 :(得分:2)
您的代码:
$('#customerServices input:checkbox[class="parent"]');
不起作用,因为您使用的是“attribute equals”选择器,该选择器将匹配class
属性的整个值(并且由于您列出了多个类名,因此它会显示匹配整个字符串)。
但是,class selector,.
将匹配单个类名。因此,您可以使用类选择器而不是属性选择器,它应该可以工作:
$('#customerServices input:checkbox.parent');