Есть вот такой html
<label for="val-1" class="m-r-sm">
<input type="checkbox" name="attributes" value="1" data-attribute-name="size" id="val-1" class="js-product-attributes" >10
</label>
<label for="val-2" class="m-r-sm">
<input type="checkbox" name="attributes" value="2" data-attribute-name="color" id="val-2" class="js-product-attributes" >Red
</label>
Таких чекбоксов n-ное количество
и вот такой js код
var $combination = {};
$('.js-product-attributes:checked').each(function (i, el) {
$combination[$(el).data('attribute-name')] = {};
});
console.log($combination);
В итоге получаю
Object {Size: Object, Color: Object}
Color: Object
Size:Object
__proto__: Object
Сам вопрос, как элементы этого обьекта добавить массив значений выделенных чекбоксов у которых data-attribute-name соответствует названию элемента в обьекте. Тоесть к Object.color добавить все выделенные чекбоксы у которых data-attribute-name="color".
Спасибо!
Так?
var $combination = {};
$('.js-product-attributes').each(function (i, el) {
$combination[$(el).data('attribute-name')] = {};
});
function PuchCheck(){
let color = $('.js-product-attributes[data-attribute-name = color]:checked'),
size = $('.js-product-attributes[data-attribute-name = size]:checked');
$combination.color = color;
$combination.size = size;
console.log($combination.color.length+' '+$combination.size.length);
$($combination.color).parent().css({'color':'red'});
$($combination.size).parent().css({'color':'blue'});
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<label for="val-1" class="m-r-sm">
<input type="checkbox" name="attributes" value="1" data-attribute-name="size" id="val-1" class="js-product-attributes" >10
</label>
<label for="val-2" class="m-r-sm">
<input type="checkbox" name="attributes" value="2" data-attribute-name="color" id="val-2" class="js-product-attributes" >Red
</label>
<label for="val-3" class="m-r-sm">
<input type="checkbox" name="attributes" value="2" data-attribute-name="color" id="val-3" class="js-product-attributes" >Grey
</label>
<label for="val-4" class="m-r-sm">
<input type="checkbox" name="attributes" value="2" data-attribute-name="color" id="val-4" class="js-product-attributes" >Green
</label>
<button onclick="PuchCheck()">Push</button>
Продвижение своими сайтами как стратегия роста и независимости