javascript - 单击复选框时如何在 jquery 中创建数组?

标签 javascript php jquery arrays checkbox

我有一个品牌复选框和一个价格复选框。现在,如果用户单击复选框,我需要一个 Brand_ids 数组和一个价格数组。

<div class="left-filters__inner--block">
  <ul class="filter-data filter-data-brands" id="brands_list">
    @foreach(App\Brand::all() as $brand)
      <li>
        <label for="{{$brand->name}}" class="mdl-checkbox mdl-js-checkbox mdl-js-ripple-effect">
           <input type="checkbox" name="brands[]" id="{{$brand->name}}" class="mdl-checkbox__input"  data-value="{{$brand->id}}">
           <span class="mdl-checkbox__label">{{$brand->name}}</span>                       
        </label>
      </li>
    @endforeach
  </ul>
</div>

带有复选框的价格 View

<div class="left-filters__inner--block">
    <ul class="filter-data filter-data-price" id="price_list">
        <li>
            <label for="less-20" class="mdl-checkbox mdl-js-checkbox mdl-js-ripple-effect">
                <input type="checkbox" id="less-20" class="mdl-checkbox__input" name="price" data-value="0,20">
                <span class="mdl-checkbox__label">Less than 20</span>
            </label>
        </li>
        <li>
            <label for="21-50" class="mdl-checkbox mdl-js-checkbox mdl-js-ripple-effect">
               <input type="checkbox" id="21-50" class="mdl-checkbox__input" name="price" data-value="21,50">
               <span class="mdl-checkbox__label">21  -  50</span>
             </label>
         </li>
         <li>
              <label for="51-100" class="mdl-checkbox mdl-js-checkbox mdl-js-ripple-effect">
                   <input type="checkbox" id="51-100" class="mdl-checkbox__input"  name="price" data-value="51,100">
                   <span class="mdl-checkbox__label">51  -  100</span>
               </label>
         </li>

现在,当用户单击特定品牌或价格的复选框时,我想要一个如下所示的数组。

Array
    (
        [brand_id] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 3
        )

        [price] => Array
        (
            [0] => 0,1000
            [1] => 1000,2000
        )

    )

我想使用 jquery 来实现这一点。请帮忙

最佳答案

https://jsfiddle.net/2moqx8da/

$("input:checkbox").click(function() {
    var brandids=[], prices=[];
    $("input[name='brands']:checked").each(function() {
    brandids.push($(this).val())
  });
  $("input[name='price']:checked").each(function() {
    prices.push($(this).val())
  });
  $('#output').text(JSON.stringify([brandids, prices]));
});

关于javascript - 单击复选框时如何在 jquery 中创建数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35653742/

相关文章:

javascript - 如何将先前声明的函数作为值包含在对象构造函数的键值对中?

javascript - Assets 管道未从rails-assets gem加载脚本

php - 如果帖子在 5 小时内显示文本

jquery - 模态框与 css 关键帧冲突

jQuery Offset 返回负值

javascript - Materializecss 的基本可折叠示例不起作用

javascript - Node JS 找不到另一个文件夹中文件的模块错误

javascript - 检索数据时将空格应用于输入框

php - 在 linux 中使用 inotify 在 php 中读取文件

jquery - 使用多级 jQuery 插件函数访问 'this' 上下文