首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >遍历html表并选中复选框(JQuery)

遍历html表并选中复选框(JQuery)
EN

Stack Overflow用户
提问于 2013-08-20 17:48:47
回答 3查看 113.5K关注 0票数 19

我有一个HTML表,每行都有一个复选框。

我想遍历这个表,看看是否有任何复选框被选中。

以下内容不起作用:

代码语言:javascript
复制
$("#save").click( function() {
    $('#mytable tr').each(function (i, row) {
        var $actualrow = $(row);
        checkbox = $actualrow.find('input:checked');
        console.log($checkbox);
});

这将在控制台中打印以下内容:

[prevObject: jQuery.fn.jQuery.init[1], context: tr, selector: "input:checked", constructor: function, init: function…]

每行,而不管是否选中任何复选框。

更新

同样的问题:

代码语言:javascript
复制
$('#mytable tr').each(function (i, row) {                                                                                                 
   var $actualrow = $(row);
    $checkbox = $actualrow.find(':checkbox:checked');
    console.log($checkbox);  
});
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-08-20 17:53:27

改用下面的代码:

代码语言:javascript
复制
$('#save').click(function () {
    $('#mytable').find('input[type="checkbox"]:checked') //...
});

让我向您解释一下选择器的作用:input[type="checkbox"]表示这将匹配每个类型属性为type等于checkbox<input />,之后::checked将匹配所有选中的复选框。

您可以使用以下命令遍历这些复选框:

代码语言:javascript
复制
$('#save').click(function () {
    $('#mytable').find('input[type="checkbox"]:checked').each(function () {
       //this is the current checkbox
    });
});

这是JSFiddle的演示。

这是一个演示,它恰好解决了你的问题http://jsfiddle.net/DuE8K/1/

代码语言:javascript
复制
$('#save').click(function () {
    $('#mytable').find('tr').each(function () {
        var row = $(this);
        if (row.find('input[type="checkbox"]').is(':checked') &&
            row.find('textarea').val().length <= 0) {
            alert('You must fill the text area!');
        }
    });
});
票数 61
EN

Stack Overflow用户

发布于 2013-08-20 17:55:07

使用.filter(':has(:checkbox:checked)' ie:

代码语言:javascript
复制
$('#mytable tr').filter(':has(:checkbox:checked)').each(function() {
 $('#out').append(this.id);
});
票数 2
EN

Stack Overflow用户

发布于 2017-01-14 02:20:17

下面的代码片段根据页面上是否至少选中了一个复选框来启用/禁用按钮。

代码语言:javascript
复制
$('input[type=checkbox]').change(function () {
    $('#test > tbody  tr').each(function () {
        if ($('input[type=checkbox]').is(':checked')) {
            $('#btnexcellSelect').removeAttr('disabled');
        } else {
            $('#btnexcellSelect').attr('disabled', 'disabled');
        }
        if ($(this).is(':checked')){
            console.log( $(this).attr('id'));
         }else{
             console.log($(this).attr('id'));
         }
     });
});

这是JSFiddle的演示。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18331973

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档