Добавить класс к ближайшему элементу

Я пытаюсь добавить класс для динамически создаваемых объектов, но здесь что-то идет не так. И я не могу заставить его работать!

Есть идеи?

<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')

Другие вопросы по тегам