jquery按div选择复选框

jquery按div选择复选框,jquery,Jquery,我想知道当有人单击整个div层时,jQuery中是否有方法选中/取消选中复选框。本质上,就像有一个巨大的选择区域 有什么想法吗 这里有一个例子。。。我试图使复选框周围的点击切换到个人复选框,差不多 <fieldset> <div> <input type="checkbox" id="Checkbox1" /> </div> Person 1<br /> </fieldset> <

我想知道当有人单击整个div层时,jQuery中是否有方法选中/取消选中复选框。本质上,就像有一个巨大的选择区域

有什么想法吗

这里有一个例子。。。我试图使复选框周围的点击切换到个人复选框,差不多

<fieldset>
    <div>
        <input type="checkbox" id="Checkbox1" />
    </div>
    Person 1<br />
</fieldset>
<fieldset>
    <div >
        <input type="checkbox" id="Checkbox2" />
    </div>
    Person 2<br />
</fieldset>

选中所有复选框:

<input type="checkbox" id="checkAll" /> Check All

可能使用单击的div作为父级

$(function() {
     $('#divId').toggle(
       function(event) {
         $(this).find('input').attr('checked', true);
       },
       function(event) {
         $(this).find('input').attr('checked', false);
       }
     );
 });

这应该只选中所单击的divId内的框。

当您想使这项工作既能单击div并在其内输入,又能触发更改功能时,可以使用以下代码:

$('fieldset div').bind('click', function() {
    var checkbox = $(this).find(':checkbox');

    checkbox.attr('checked', !checkbox.attr('checked'));
});
$('input').change(function() {
    console.log('change triggered')
}).click(function(event) {
    event.stopPropagation()
})

$('div').click(function() {
    var c = $this.find('input')
    c.attr('checked', (!c.is(':checked')).change()
})

最明显也是最具语义的方法是使用label元素,而不是div,将标签的'for'属性设置为复选框的id,不需要JavaScript!唯一需要注意的是,label是一个内联元素,因此不能包含块元素。如果只想将内联元素放入div中,请改用label。否则,eyazici的答案应该有效。您想在单击多个其他内容时选中单个框,还是在单击单个内容时选中多个框?单击单个内容时选中单个复选框,重复。我想制作一张卡片列表,每张卡片都有一个复选框。卡片的标题可以点击,基本上可以“检查”它。我已经用一个更清晰的例子更新了这个问题。我为缺少信息道歉。您可以使用CSS使标签包含块级元素-如果您在标签中放置一个跨距并设置样式:display:block;呃,我不认为这是我想要做的。如果单击了一个较大的层,我只想一次选中一个框。不是所有的。如果我用它作为身份证,我只能把它放在一个复选框上。不,对不起。这不是我想要做的。这很接近,但它仍然检查页面上的所有内容。内容是从数据库生成的,同一页上有几十个。是的!我相信是他干的!我可以麻烦您提供关于这里发生的事情的任何信息,以便更好地理解它吗?这与Aaron的回答相同,但不是全局$'input'查找文档中的所有输入,而是我将其限制在单击的div this中查找单击的div中的所有输入这也起作用。非常感谢大家!随着我尝试的每一件新事物,我都在学习更多关于jQuery的知识。
$('fieldset div').bind('click', function() {
    var checkbox = $(this).find(':checkbox');

    checkbox.attr('checked', !checkbox.attr('checked'));
});
$('input').change(function() {
    console.log('change triggered')
}).click(function(event) {
    event.stopPropagation()
})

$('div').click(function() {
    var c = $this.find('input')
    c.attr('checked', (!c.is(':checked')).change()
})