我创建了一个自定义复选框。
它基本上是一组2个复选框。当dom准备就绪时,两个复选框都被选中。允许用户仅取消选中一个。
这就是我实施它的方式。
我有一个像这样的容器
<div class="container">
<input name="my_checkbox_1" type="checkbox" checked="checked">
<label for="my_checkbox_1" class="on">Hello</label>
<input name="my_checkbox_2" type="checkbox" checked="checked">
<label for="my_checkbox_2" class="on">World</label>
</div>
现在,当用户单击label时,我找到了最近的容器
parent = $(this).closest(".container");
一旦我有了父母,我就会找到复选框的数量,就像这样
len = $(parent).find("input:checkbox:checked").length;
如果len为0,我尝试用适当的错误警告用户。这在其他所有浏览器中都有效,但是(即(我允许在那里说没有惊喜吗?)。但是我在这里做错了什么?
请记住,我有许多这样的容器,其复选框具有唯一的名称。
我用下面的代码创建了一个小提琴
http://jsfiddle.net/kiranruth/UeEyB/1/
最佳答案
由于要覆盖window's parent property,因此需要将parent声明为局部变量或重命名
我只是在变量前面添加var
var parent = $(this).closest(".container");
var len = $(parent).find("input:checkbox:checked").length;