在JavaScript的按钮单击事件上打印与HTML中的复选框关联的值

时间:2016-03-08 00:50:01

标签: javascript html arrays html-parsing javascript-objects

计划从HTML页面上的选择中获取特定ID值(此处选择表示选中复选框)。这是我的按钮点击事件的代码(按钮将获取行号或ID):

$("a", button).click(function () {
            $('#groups').find('tr').each(function () {
                 var row = $(this);
                 if (row.find('input[type="checkbox"]').is(':checked')) {
                    console.log($(this));
            }
        });
});

这会返回关于rows + tr标签的附加信息,但是,我只想要它的ID部分。以下是我从以上代码中获取的示例输出:

[tr#row-12150.row.oddSelected, context: tr#row-12150.row.oddSelected]
[tr#row-12151.row.evenSelected, context: tr#row-12151.row.evenSelected]

这意味着我从12150 and 12151表格中选择了#groups。我如何只抽取行号12150 and 12151而不是整个详细输出,我希望它存储在一个数组/(JS数组)中,用于多行号。

2 个答案:

答案 0 :(得分:1)

根据.find('tr')你有一行,你应该可以去:

console.log($(this).attr('id')); //this should show the id in your console.

所以你的代码变成了:

$("a", button).click(function () {
            $('#groups').find('tr').each(function () {
                 var row = $(this);
                 if (row.find('input[type="checkbox"]').is(':checked')) {
                   console.log($(this).attr('id'));
            }
        });
});

然后只需获取您可以使用的号码:

var number = $(this).attr(id).split('-')[1] //assuming it's always row-<<some number>>

把它们放在一起:

 $("a", button).click(function () {
                $('#groups').find('tr').each(function () {
                     var row = $(this);
                     if (row.find('input[type="checkbox"]').is(':checked')) {
                       var number = $(this).attr('id').split('-')[1] //assuming it's always row-<<some number>>;
                       console.log(number);
                }
            });
    });

将其存储在数组中:

$("a", button).click(function () {
                    var checkedRows = []; //define empty array.
                    var count = 0; //keep a counter to use for the array.
                    $('#groups').find('tr').each(function () {
                         var row = $(this);
                         if (row.find('input[type="checkbox"]').is(':checked')) {
                           var number = $(this).attr('id').split('-')[1];
                           checkedRows[count] = number; //add the number to our array.
                           count++; //increase the count
                    }
                });
        });

答案 1 :(得分:0)

确保您的表单和按钮首先出现,然后尝试使用

$('#buttonId').click(function(){
  $('#formId input:checked').each(i, e){
    console.log($(e).attr('id'));
  }
});