Мне нужен идентификатор выбора show js, этот код показывает только 1 и сначала выбирает id
мой код – это html и javascript
<tr> <td> <select name="jens_id[]" id="jens_id" required="" > <option ></option> <option >1</option> <option >2</option> </select> </td> </tr> <tr> <td> <select name="jens_id[]" id="jens_id" required="" > <option ></option> <option >1</option> <option >2</option> </select> </td> </tr> <script> $(document).ready(function(){ $('#jens_id').change(function(){ statteId = $("#jens_id").val() alert(statteId); }); }); </script>
может помочь для редактирования скрипта
Атрибут id
должен быть уникальным на странице, иначе выбирается только первый (с использованием селектора идентификаторов), поскольку группа элементов использует общий класс вместо этого, а внутри обработчика события изменения использует this
для ссылки на элемент с кликом.
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <table> <tr> <td> <select name="jens_id[]" class="jens_id" required=""> <option ></option> <option >1</option> <option >2</option> </select> </td> <td></td> </tr> <tr> <td> <select name="jens_id[]" class="jens_id" required=""> <option ></option> <option >1</option> <option >2</option> </select> </td> <td></td> </tr> </table> <script> $(document).ready(function() { // or use attribute equals selector // $('[name="jens_id[]"]') $('.jens_id').change(function() { statteId = $(this).val(); // or this.value console.log(statteId); // get the td and update with value $(this).parent().next().text(statteId); }); }); </script>
Попробуйте с each()
функцией jquery. И измените селектор с помощью Tagname
или ClassName
вместо id
.Id является уникальным для полного документа
$(document).ready(function() { $('select').each(function(){ console.log($(this).val()) }) });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <tr> <td> <select name="jens_id[]" id="jens_id" required=""> <option ></option> <option selected>1</option> <option >2</option> </select> </td> </tr> <tr> <td> <select name="jens_id[]" id="jens_id" required=""> <option ></option> <option >1</option> <option selected>2</option> </select> </td> </tr>
$(document).ready(function() { $('.jens_id').change(function() { statteId = $('option:selected', this).text() alert(statteId); }); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <select name="jens_id[]" class="jens_id" required=""> <option ></option> <option >1</option> <option >2</option> </select> <select name="jens_id[]" class="jens_id" required=""> <option ></option> <option >3</option> <option >4</option> </select>
Вы уже знаете, что идентификатор элемента на странице должен быть уникальным.
Когда у вас есть несколько элементов с одним и тем же идентификатором, тогда селектор id(#)
возвращает первый согласованный элемент. Так, как упоминалось в других ответах, вы должны использовать класс, если это возможно.
По какой-либо причине, если вы не можете использовать класс и хотите найти с id, вы можете использовать его как $('select#jens_id')
или $('[id="jens_id"]')
и получить выбранную опцию используйте контекст для this
который найдет выбранную опцию для измененного элемента select.
$(document).ready(function() { $('select#jens_id').change(function() { alert($(this).find('option:selected').text()); }); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <select name="jens_id[]" id="jens_id" required=""> <option ></option> <option >1</option> <option >2</option> </select> <select name="jens_id[]" id="jens_id" required=""> <option ></option> <option >3</option> <option >4</option> </select>