jQuery只适用于第一个复选框?

时间:2014-02-28 13:49:30

标签: jquery checkbox

为什么这个脚本:

$("#generujbox").change(function ()
{
   var idcheck = $(this).val();

   if ($(this).is(":checked"))
   {
      $("p").text(idcheck);
   }
   else
   {
      $("p").text("unchecked");
   }
});

仅适用于网站上的第一个复选框? 我有很多带有id = generujbox

的复选框

2 个答案:

答案 0 :(得分:4)

元素的ID必须是唯一的!!!

id选择器将仅返回具有所述id的第一个元素,因此单击处理程序将仅添加到第一个元素

您可以将类用于类似元素

<input class="generujbox" type="checkbox" />

然后

$(".generujbox").change(function () {
    var idcheck = $(this).val();

    if ($(this).is(":checked")) {
        $("p").text(idcheck);
    } else {
        $("p").text("unchecked");
    }
});

答案 1 :(得分:1)

问题是您使用的是ID。如果您选择一个ID,它将只选择第一个(因为假设它们是唯一的)。您应该使用类,而您可以选择.generujbox

JSFiddle

HTML

<input type="checkbox" class="generujbox" value="a" />
<input type="checkbox" class="generujbox" value="b" />
<input type="checkbox" class="generujbox" value="c" />
<input type="checkbox" class="generujbox" value="d" />
<p></p>

JS

$(".generujbox").change(function () {
    var idcheck = $(this).val();
    if ($(this).is(":checked")) {
        $("p").text(idcheck);
    } else {
        $("p").text("unchecked");
    }
});