我创建了一个自定义复选框。
它基本上是一组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;

10-07 14:38