在javascript / jquery中获取多个选中的值

时间:2014-08-28 06:20:29

标签: javascript jquery each

我的div标签中定义了状态ID,该标记存在于phtml文件中。现在,我需要将其值读取到seprate javascript文件中。

我已经使用了jquery push方法。

phtml文件中的代码:

<table class="abc">
<tbody id="checkboxes">
<tr class="r<?php echo $item['id']; ?><?php echo ($item['status_low']?' status-low':''); ?>">
                    <td><input type="checkbox" name="item" class="row" statusid="<?php echo $item['status_id']; ?>"</td>
                    <td><?php echo $item['id']; ?></td>
                    <td><?php echo $item['title']; ?></td>
</tr>
</tbody>
</table>

Javascript文件中的代码:

 var selected = [];
    $('#checkboxes input:checked').each(function() {
       if ($(this).checked) {
           selected.push($(this).attr('statusid'));
       }
    });
    console.log(selected);

当我打印选定的数组时,我得到一个空白输出。

谁能告诉我哪里出错了?

5 个答案:

答案 0 :(得分:1)

试试这个: -

var selected = [];
$("input[type='checkbox']").each(function(){
  if($(this).is(':checked'))
  {
    selected.push($(this).attr('statusid'));
  }
});

OR

var selected = [];
$("#checkboxes input[type='checkbox']").each(function(){
  if($(this).is(':checked'))
  {
    selected.push($(this).attr('statusid'));
  }
});

OR

var selected = [];
$("#checkboxes input[type='checkbox']:checked").each(function(){
    selected.push($(this).attr('statusid'));
});

答案 1 :(得分:1)

只需删除您的if条件,如下所示。您的选择器仅适用于选中的复选框,因此无论如何您都不需要。

$('#checkboxes input:checked').each(function() {
       selected.push($(this).attr('statusid'));
});

DEMO

答案 2 :(得分:0)

像这样更改你的JQuery代码,

$('#checkboxes input:checked') 

$("#checkboxes input[type='checked']") 

您的代码是:::

var selected = [];
    $("#checkboxes input[type='checked']").each(function() {

           selected.push($(this).attr('statusid'));

    });
    console.log(selected);

答案 3 :(得分:0)

&#34; #checkboxes输入:选中&#34;选择器已选中已选中复选框,因此您无需检查复选框是否已选中。见http://api.jquery.com/checked-selector/

var selected = $.map('#checkboxes input:checked',function(ck,i){
   return $(ck).attr('statusid');
})

答案 4 :(得分:0)

你可以尝试这个

 var selected = $('#checkboxes input:checkbox:checked.row').map(function () {
             var cbId = this.id;
             return cbId;
         }).get();