jQuery将复选框选择转换为数组

问题描述 投票:0回答:2

我有这样的HTML

<div class="pgggo-list-taxon">
    <li>
        <label>
            <input type="checkbox" name="pgggo-category-sep-56[]">
            <div class="icon-box">
                <div name="development">Development</div>
            </div>
        </label>
    </li>
    <li>
        <label>
            <input type="checkbox" name="pgggo-category-sep-14[]">
            <div class="icon-box">
                <div name="food">Food</div>
            </div>
        </label>
    </li>
    <li>
        <label>
            <input type="checkbox" name="pgggo-category-sep-8[]">
            <div class="icon-box">
                <div name="medical">Medical</div>
            </div>
        </label>
    </li>
    <li>
        <label>
            <input type="checkbox" name="pgggo-category-sep-1[]">
            <div class="icon-box">
                <div name="uncategorized">Uncategorized</div>
            </div>
        </label>
    </li>
    <li>
        <label>
            <input type="checkbox" name="pgggo-category-sep-2[]">
            <div class="icon-box">
                <div name="wordpress">WordPress</div>
            </div>
        </label>
    </li>
</div>

每个复选框具有唯一名称= pgggo-category-sep-56pgggo-category-sep-14。单击多个项目后,会将ID添加到下面数组的ID字段中。

我正在尝试一种方法,可以给我一个输出数组:

$output = array(
   array(
     'taxonomy'=> 'category', // pgggo-category-sep-56 --category word is pulled from here
     'id'=> array(56,14), // ids are pulled pgggo-category-sep-56 number at the end
    )
   array(
     'taxonomy'=> 'home', // pgggo-home-sep-56 --homeword is pulled from here
     'id'=> array(56,14), // ids are pulled pgggo-category-sep-56 number at the end
    )
);

我尝试过:

$('.pgggo-container-ajax-sorting').on('click', '.pgggo-list-taxon input', function(event) {
   var outputPgggo = $(this).attr('name');
}

但是这只会拉线。有什么办法可以做到这一点?

javascript jquery arrays
2个回答
1
投票
Object.entries(array).map(([taxomony, id]) => ({taxomony, id}))

1
投票
$('[name="pgggo-category-sep[]"]').on('change', function () { let values = Array.from($('[name="pgggo-category-sep[]"]:checked')) .map(elem => $(elem).val()) })
© www.soinside.com 2019 - 2024. All rights reserved.