【问题标题】:get multiple checked value in javascript/jquery在 javascript/jquery 中获取多个检查值
【发布时间】:2014-10-21 21:56:58
【问题描述】:

我在我的 div 标签中定义了状态 ID,它存在于一个 phtml 文件中。现在,我需要将它的值提取到单独的 javascript 文件中。

我已经为此使用了 jquery 推送方法。

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);

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

谁能告诉我哪里出错了?

【问题讨论】:

  • 你能发布渲染的 HTML,我没有看到容器 #checkboxes 那里。
  • id 复选框在哪里?
  • 对不起,我现在添加了它
  • 如果你已经选择了checkedinputs,那你又用if检查了,还是用不正确的方式?
  • @regent :我使用了来自stackoverflow.com/questions/2155622/…的代码

标签: javascript jquery each


【解决方案1】:

试试这个:-

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

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

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

【讨论】:

  • 即使这样也能按要求解决!感谢例外的特殊帮助:)
【解决方案2】:

像这样改变你的 JQuery 代码,

$('#checkboxes input:checked') 

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

你的代码是:::

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

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

    });
    console.log(selected);

【讨论】:

  • 问题出在不正确且不必要的$(this).checked,不在输入选择器中。
【解决方案3】:

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

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

DEMO

【讨论】:

  • 我说的是:)
【解决方案4】:

"#checkboxes input:checked" 选择器已经选择了选中的复选框,所以你不需要检查复选框是否被选中。看这里http://api.jquery.com/checked-selector/

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

【讨论】:

    【解决方案5】:

    你可以试试这个

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

    【讨论】:

      猜你喜欢
      • 2021-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-27
      • 1970-01-01
      • 1970-01-01
      • 2012-06-12
      • 1970-01-01
      相关资源
      最近更新 更多