javascript - 使用 jquery 获取一组复选框值

标签 javascript jquery

在一组复选框中,例如在 php 中生成的

<?php
     foreach($estados as $estado){
          $html = '<div class="checkbox chk_estado">';
          $html .= '<label><input type="checkbox" class="estate_check" value="" chk_id="'.$estado->id_estat.'" />'.$estado->estat.'</label>';
          $html .="</div>";

          echo $html;
      }
 ?>

我正在尝试获取该类的已检查成员的 check_id 属性,但我在选中某些复选框时得到 0 值

var checked  = $('.estate_check').attr('chk_id');

最佳答案

如果您想在 HTML 元素中存储某些内容,请使用 data-* 属性。在这种情况下,请使用 data-check-id="..."

<div class="checkbox chk_estado">
  <label>
    <input type="checkbox" class="estate_check" value="A" data-check-id="1">
    Something
  </label>
</div>
<div class="checkbox chk_estado">
  <label>
    <input type="checkbox" class="estate_check" value="B" data-check-id="2">
    Something
  </label>
</div>
<div class="checkbox chk_estado">
  <label>
    <input type="checkbox" class="estate_check" value="C" data-check-id="3">
    Something
  </label>
</div>

然后,这就是如何获取所有选中的复选框。

const getAllChecked = () =>
  Array.from(
    document.getElementsByClassName('estate_check')
  )
    .filter(x => x.checked)
    .map(x => x.dataset.checkId);

你会得到一个像这样的数组。

Array [ "1", "2" ]

关于javascript - 使用 jquery 获取一组复选框值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49169726/

相关文章:

javascript - 如何在 vis.js 时间轴中获取开始和结束时间?

javascript - 简单的 innerHTML 更新不起作用

jQuery Mobile 将参数从一个页面传递到另一个页面

javascript - html Canvas 绘图显示通过

javascript - 使用 next() 使用迭代器对象迭代两个 JavaScript 数组

javascript - 通过父构造函数创建 Backbone 继承 View

jquery - 在 jQuery UI 对话框确认框中使用验证码

javascript - 使用 jQuery 在 CSS 中切换动画,有没有比我的解决方案更好的方法?

javascript - 中断 fadeTo 函数

java - 将对象拖到浏览器窗口之外