есть несколько групп элементов с атрибутами. всегда один элемент в группе выбран (класс selected). по клику выбор может меняться.
<div>
<a data-attribute-name="type"
data-attribute-value="34"></a>
<a data-attribute-name="type"
data-attribute-value="35" class="selected"></a>
</div>
<div>
<a data-attribute-name="color"
data-attribute-value="white"></a>
<a data-attribute-name="color"
data-attribute-value="black" class="selected"></a>
<a data-attribute-name="color"
data-attribute-value="red"></a>
</div>
<div>
<a data-attribute-name="size"
data-attribute-value="big"></a>
<a data-attribute-name="size"
data-attribute-value="small" class="selected"></a>
<a data-attribute-name="size"
data-attribute-value="middle"></a>
</div>
есть некоторый массив (в нем для каждого ключа могут быть как все, так и не все атрибуты)
var arr = {"10002":{"color":"black", "type":"34", "size":"small"},"10003":{"color":"white", "type":"34", "size":"big"}}
как перебрать массив, чтоб при всех выбранных элементах с дата-атрибутами name и value, соответствующим ключу-значению id, например 10002, выводилось true?
$(function() {
$('a').on('click' , function() {
var attributeName = $(this).attr('data-attribute-name');
var attributeValue = $(this).attr('data-attribute-value');
$(this).siblings('.attributename').removeClass('selected');
$(this).addClass('selected');
for(var i in arr) {
var offerVariant = (arr[i][attributeName]);
if (offerVariant == attributeValue) {
attributeName = i;
if ( ) { // если все ключи-значения в элементах .selected содержатся в attributeName, тут ступор
$.getJSON(url + attributeName, function (data) {
alert(data.productName);
});
}
else {
alert ('такой комбинации нет')
}
}
}
});
});