Подтвердить что ты не робот

Использование .each для динамических объектов в jQuery?

Есть много вопросов, которые, кажется, спрашивают об этом, но в конце концов все, что они хотят, - это присоединить .click-события, а не .each, и поэтому общепринятый ответ во всех из них включает $("body").on("click", ".selector", function(){});, и это определенно не то, что я хочу.

У меня есть некоторые сгенерированные входы, и мне нужно изменить значение каждого из них одновременно. Обычно я бы $(".inputs").each(function(){$(this).val("new-value")}; или что-то в этом роде, однако я не могу из-за динамического аспекта.

Итак, как бы вы сделали $("body").on("each", ".inputs", function(){});?

4b9b3361

Ответ 1

Собственно, это так же просто, как запустить .each внутри setTimout.

setTimeout(function(){
  $(".inputs").each(function(){$(this).val("new-value")});
}, 5000);

Ответ 3

Вы можете использовать $(".inputs").each(function(){$(this).val("new-value")}; отлично для динамических элементов. Вам просто нужно перезапустить script после того, как вы добавили элемент динамически.

Из комментариев я понял, что существует некоторое недоразумение о "каждом". "Каждый" не является событием, поэтому ни одно событие не запускается, если вызывается "каждый". Если вы хотите отслеживать добавленные элементы, потому что у вас нет контроля над их добавлением, вам нужен таймер:

setInterval(function(){ $(".inputs").each(function(){$(this).val("new-value")}; },500);