Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Как обратиться к каждому Select (https://javascript.ru/forum/events/78869-kak-obratitsya-k-kazhdomu-select.html)

veltony 15.11.2019 17:41

Как обратиться к каждому Select
 
Подскажите пожалуйста.

Есть код:

<div id="dom">
<select id="1" onchange="Vtk(1)"></select>
<select id="2" onchange="Vtk(2)"></select>
...
<select id="20" onchange="Vtk(20)"></select>
</div>

После выбора какого-то select нужно выполнить какую-то операцию используя id этого select
Можно-ли вместо onchange на каждом select, как-то иначе это реализовать не вешая на каждый select событие

laimas 15.11.2019 18:01

<div id="dom">
    <select id="1">
        <option>1111</option>
        <option>2222</option>
    </select>
    <select id="2">
        <option>1111</option>
        <option>2222</option>
    </select>
    <select id="20">
        <option>1111</option>
        <option>2222</option>
    </select>
</div>

<script>
document.getElementById('dom').addEventListener("change", function(e) {
    alert(e.target.id)
});
</script>

veltony 15.11.2019 18:24

Есть ещё два момента.
Все select подгружаются через AJAX, и еще момент id каждого select не цифровой а текстовый:
var key = p_1;
sel += '<select id='+key+' ></select>";

laimas 15.11.2019 18:31

И что? Вам что нужно знать их id? Узнавайте - e.target.id. Или не важно и хватит самого источника? Ну так e.target, это тот в котором произошло изменение. А обработка события изменения их делегируется родителю, так что обрабатываться будут все добавляемые.

veltony 15.11.2019 18:47

Прошу прощения, сам ошибся.
Всё работает.
Огромное спасибо!


Часовой пояс GMT +3, время: 15:30.