MAXH0
@MAXH0

Как осуществляется правильное обращение из javascript к динамически заданным элементам?

т.е. если изначально html задан все просто - обращаемся по id.

а если мы имеем несколько одинаковых блоков создаваемых динамически, то как правильно обращаются к ним. Не хочется создавать минивелосипед в коде. Я уверен есть стандартное решение.
  • Вопрос задан
  • 2911 просмотров
Решения вопроса 2
Petroveg
@Petroveg
Миром правят маленькие с#@&ки
Так если вы динамически создаёте — ссылки на созданные элементы сохраняйте в переменных или свойствах объекта.
Ответ написан
Комментировать
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Как осущетсвляется ПРАВИЛЬНО обращение

Никак, для каждого случая свои правила и свое "правильно". Но вообще "правильно" - обращаться по ссылке. Если элемент был создан динамически, у нас уже есть ссылка на оный в коде. Если шаблонизаторы применялись - то так же есть варианты. Выборку по селектору вы можете делать когда захотите.

обращаемся по id

Не по ID а по селектору. Вообще стоит избегать использования селекторов по ID или как минимум делать эти селекторы осмысленно а не просто так. Скажем по data-* атрибутом выборка будет не сильно медленнее и специфичность селекторов от этого не пострадает. А возможностей появляется больше (конфигурация из тех же data-* атрибутов, декларативный подход для инициализации компонентов и т.д.).
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@asdz
да также вроде - по селектору
Ответ написан
Комментировать
ddv88
@ddv88
Binance Futures
В Jquery есть такая вещица как map().
Можно использовать на чайлдов какого либо элемента.
И неважно будет элемент создан динамически или нет.
Например
<div id="field">
<input value="1">
<input value="a">
<input value="3">
<input value="b">
<textarea>5</textarea>
<button value="66">Кнопка</button>
</div>
<div id="result"></div>


var result = $('#field textarea, input, button').map(function() {
      return $(this).val()
}).get().join(', ');
$('#result').html(result);


jsfiddle.net/csb8r0e3/2
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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