Добавить класс к ближайшему элементу
Я пытаюсь добавить класс для динамически создаваемых объектов, но здесь что-то идет не так. И я не могу заставить его работать!
Есть идеи?
<span class="status"><div class="like_button"></div></span>
<script>
$(this).closest('span').find('.like_button').addClass('liked')
</script>
ОБНОВИТЬ:
Дело в том, что у меня есть кнопка, похожая на Facebook (созданная с помощью API, а не обычного) внутри каждого из элементов, и мне нужно проверить ее статус, прежде чем я смогу добавить класс "понравился" или "не понравился". Таким образом, все элементы div с классом "item" создаются в цикле PHP. И также я понимаю, что не рекомендуется запускать скрипт несколько раз в цикле. Но мне нужно пройти дальше в тестах здесь:)
<div class="item">
<span class="status"><div class="like_button"></div></span>
<script>
$(this).closest('span').find('.like_button').addClass('liked')
</script>
</div>
<div class="item">
<span class="status"><div class="like_button"></div></span>
<script>
$(this).closest('span').find('.like_button').addClass('liked')
</script>
</div>
<div class="item">
<span class="status"><div class="like_button"></div></span>
<script>
$(this).closest('span').find('.like_button').addClass('liked')
</script>
</div>
<div class="item">
<span class="status"><div class="like_button"></div></span>
<script>
$(this).closest('span').find('.like_button').addClass('liked')
</script>
</div>
2 ответа
Когда код в теге script будет запущен, <span>
будет последним загруженным тегом.
Это beign сказал, вы можете сделать это:
$('span:last').find('.like_button').addClass('liked')
Скрипка: http://jsfiddle.net/NRUuV/
Предполагая, что $(this) - это span: $(this).next().addClass('liked')