我已经使用Jquery创建了以下DOM:
<div id="d0" class="choiceDiv">
<input type="checkbox" id="cb0" class=".userCheckBox" value="Option 1" checked="checked">
<input type="hidden" id="h0" class=".userCheckBoxHidden" value="true">
<label for="cb0">Option 1</label>
</div>
我已经将CSS标签应用于DOM中的元素,此时CSS类内部没有任何属性。
一个div中大约有17个。加载页面后,我想重新加载每个复选框的当前选中值。在遍历每个代码时,我尝试在DOM上使用.find()函数:
$('.choiceDiv').each(function(e){
当我尝试按班级查找时,
$(this).find('.userCheckBox');
我得到以下失败对象:
init [prevObject: init(1), context: div#d0.choiceDiv, selector: ".userCheckBox"]
context: div#d0.choiceDiv
length: 0
prevObject:init [div#d0.choiceDiv, context: div#d0.choiceDiv]
selector:".userCheckBox"
__proto__:Object(0)
当我尝试通过ID查找时,
$(this).find('#cb'+e)[0];
我得到了我想要的东西:
<input type="checkbox" id="cb0" class=".userCheckBox" value="Option 1" checked="checked">
我希望按类拉取对象,以确保始终获得所需的输入类型。有人可以解释为什么我可以在此实例中使用带ID的.find()而不是按类使用吗?我尝试用this post来解决这个问题,但无法正常工作。
答案 0 :(得分:4)
只需从class属性中删除句点即可。例如:
<input type="checkbox" id="cb0" class="userCheckBox" value="Option 1" checked="checked">
可以通过.find('.userCheckBox')
或.find('#cb0')
找到。