Ok динамически добавленные данные, поэтому у меня есть HTML-файл, который выглядит примерно так:Добавить класс к элементу с атрибутом
while($stuff = $junk->fetch()){ ?>
<div class="top-div" data-place-id="<?php echo $place['id']; ?>"></div>
<div>
<article>
<div>
//some stuff
</div>
<div>
<span class="expand" data-place-id="<?php echo $place['id']; ?>"></span>
</div>
</article>
</div>
} ?>
Как вы можете видеть, для каждого результата из базы данных, структуру, как это выводится. Естественно, каждый раз будет по крайней мере несколько из них. Я хочу сделать так, что каждый раз, когда щелкнут span
, класс добавляется к <div data-place-id="">
, где идентификатор данных совпадает с щелчком.
Я пытался делать это так:
expandOverlay = function(){
$(".expand").each(function(){
$(".top-div").addClass('is-expanded');
})
})
Но это только добавляет класс к каждому элементу с этим классом. Тогда я попытался это:
expandOverlay = function(){
$(".expand").each('click', function(){
var dataAttr = $(this).data();
if($(".place-overlay").data() == dataAttr){
$(this).addClass("is-expanded);
}
})
});
Но это не сработало.
Итак, как я могу получить .data() из моего элемента clicked и как найти другие элементы с одним и тем же атрибутом данных, поэтому я могу назначить ему класс?
Я не знаю, почему я всегда стараюсь сделать вещи такими сложными для себя. Это намного проще и чище, чем все, что я пробовал :) –
Приятно слышать, что это помогло вам упростить вашу работу @ byr1al :) –