Большое спасибо за то, что вы нашли время прочитать это :) Сначала позвольте мне показать вам пример кода, с которым я имею дело:
<div id="section-0000001" class="section" data-section-223344="{"id":"123456", "type":"product"}">
<div>Section 0000001</div>
</div>
<div id="section-0000002" class="section" data-section-223344="{"id":"123456", "type":"category"}">
<div>Section 0000002</div>
</div>
<div id="section-123456" class="section" data-section-223344="{"id":"123456", "type":"showcase-product"}">
<div>Section 123456</div>
</div>
<div id="section-234567" class="section" data-section-223344="{"id":"234567", "type":"showcase-product"}">
<div>Section 234567</div>
</div>
<div id="section-345678" class="section" data-section-223344="{"id":"345678", "type":"showcase-product"}">
<div>Section 345678</div>
</div>
<div id="section-0000003" class="section" data-section-223344="{"id":"123456", "type":"image"}">
<div>Section 0000003</div>
</div>
Я хочу добиться, чтобы добавить класс ко всем div с типом "витрина-продукт". У меня нет доступа к исходному коду, поэтому мне нужно сделать это с помощью Jquery. К сожалению, не существует уникального класса для их фильтрации, и единственное, что уникально, - это продукт-витрина, но, как вы можете видеть, он является частью объекта в атрибуте данных, и я не могу понять, как получить к нему доступ.
Если бы атрибут data-section-xxxxxx был таким же, это было бы намного проще, но каждый div имеет уникальное значение на конце, но первая часть data-section- всегда одинакова.
Я могу l oop через div с этим:
$('.section').each(function(){
for(data in $(this).data())
console.log(data);
});
Но я не могу найти способ отфильтровать только div с type = showcase-product.
Я также пробовал другой подход:
$( ".section" ).each(function( i ) {
element=this;
$.each(this.attributes, function() {
if(this.name.indexOf('data-section') != -1)
$(element).addClass("myClass");
});
});
Это добавляет класс, но также добавляет его к классам без type = showcase-product, например type = image или type = category.
Я думаю, это могло быть что-то вроде
this.name.type.value.indeOf('data-section') != 1
Но я не уверен в правильном синтаксисе или в том, как получить к нему доступ, особенно потому, что тип - это не значение, это объект внутри значения.
Любая помощь приветствуется.