表标记内的jquery复选框无法访问

时间:2014-02-20 11:42:39

标签: javascript jquery html checkbox

我试图访问表格标签内的所有复选框.... 最初所有复选框都在div标签内,当时代码工作正常,我可以访问每个复选框

   $('#div_id').children('input').each(function()
{
    if(this.type == 'checkbox')
    {
        if($(this).attr('id') == 1)
        {
            this.checked = true;
        }
    }
});

现在,当我在表格中放置复选框时,它停止工作。我试图将'div_id'改为'table_id'仍然没有成功。有什么建议吗?

动态创建所有复选框和表格。

3 个答案:

答案 0 :(得分:2)

.children只在树下传递一个元素(此处描述为https://api.jquery.com/children/)。

您现在需要的是.find,它遍历子元素树的所有内容,因此您的代码变为:

$('div_id').find('input').each(function()
{
    if(this.type == 'checkbox')
    {
        if($(this).attr('id') == 1)
        {
            this.checked = true;
        }
    }
});

答案 1 :(得分:2)

-----------------------------下面的HTML代码--------------- -----------

<table>
    <tr>
        <td><input type="checkbox" checked="checked" /></td>
        <td><input type="checkbox" checked="checked" /></td>
        <td><input type="checkbox" /></td>
        <td><input type="checkbox" /></td>
    </tr>
</table>   

<input type="button" onclick="callFunction()" value="Click" />

-------------------------- JS代码如下------------------ --------------

<script type="text/javascript">
    function callFunction() {

        $('table input[type=checkbox]').each(function () {
            alert("hi table") //This will be call 4 times.
            if (this.checked) {
                alert("hi inner") ////This will be call 2 times, only for checked checkboxes.
                //this.checked = true;
            }
        });
    }
</script>

答案 2 :(得分:0)

您可以使用选择器api:

$('table #id input [type = checkbox]');

将返回一个包含所有复选框元素的数组。