kemply
@kemply
школьник

Как перечитать DOM?

Создаю новую строку через jQuery:
$(document).ready(function(){
   $add.on("click", function(){
      $(this).parent().before('<tr class="tr><td>1</td><td><input type="text /></td></tr>');
   });
});

проблема в том, что после того, как добавляется новый элемент, jQuery его не видит. Как сделать так, чтобы jQuery перечитал DOM и смог работать с новым элементом?
  • Вопрос задан
  • 751 просмотр
Решения вопроса 1
sim3x
@sim3x
$(document).ready(function(){
var $add = $('.wrapper_some_class .some_class');
/* создаем событие у документа, которое будет следить 
за всеми компонентами  с классом some_class
*/
$(document).on("click", ".some_class", function(){
      $(this).parent().before('<tr class="tr><td>1</td><td><input type="text /></td></tr>');
   });

/* создаем событие у неизменяемой обертке,
 в которой будут создаваться елементы
*/
$(".wrapper_some_class").on("click", ".some_class", function(){
      $(this).parent().before('<tr class="tr><td>1</td><td><input type="text /></td></tr>');
   });
});
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@chupok
Просто строку поправьте. Что у вас там с классом происходит? Кавычки правильно расставьте.
Ответ написан
Комментировать
mlnkv
@mlnkv
JavaScript Developer
$(this).parent().before('<tr class="tr"><td>1</td><td><input type="text" /></td></tr>');
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы