Jquery在一个不在ie9中工作的容器中找到已检查的输入元素

Kir*_*h R 4 jquery

我创建了一个自定义的复选框.它基本上是一组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>
Run Code Online (Sandbox Code Playgroud)

现在当用户点击标签时,我找到最近的容器

parent = $(this).closest(".container");
Run Code Online (Sandbox Code Playgroud)

一旦我有父母,我就会找到像这样检查过的复选框的数量

len = $(parent).find("input:checkbox:checked").length;
Run Code Online (Sandbox Code Playgroud)

如果len为0,我尝试用适当的错误提醒用户.这适用于所有其他浏览器的工作,但即(我可以说在那里不出意?).但我在这里做错了什么?

请记住,我有许多这样的容器,其复选框具有唯一的名称.

我在http://jsfiddle.net/kiranruth/UeEyB/1/创建了一个代码小提琴

ᾠῗᵲ*_*ᵲᄐᶌ 6

您需要将parent声明为局部变量或重命名它,因为您要覆盖window的父属性

我只想在你的变量前加上var

var parent = $(this).closest(".container");
var len = $(parent).find("input:checkbox:checked").length;
Run Code Online (Sandbox Code Playgroud)