jQuery получить ближайший элемент DROPDOWN (SELECT) с идентификатором

0

Привет всем Я пытаюсь получить самый близкий элемент выпадающего списка с идентификатором на нем. На странице у меня есть два элемента с одинаковым атрибутом идентификатора, теперь я хочу выбрать ближайший, когда я нажимаю любой элемент на странице

<select id="XYZ" .... >
<bla bla bla OTHER DOM ELEMENTS>
<select id="XYZ" ... >
<bla bla bla OTHER DOM ELEMENTS>
<btn="ABC" />

когда я нажимаю кнопку, я хочу получить VALUE ближайшего элемента SELECT

Заранее спасибо за помощь

  • 0
    Вы имеете в виду ближайший предыдущий или следующий select ? Например, если я щелкнул первый элемент bla , должен ли он вернуть первый или второй select ?
  • 0
    когда я нажимаю кнопку, она должна возвращать мне самое близкое значение SELECT, добавление к вышеупомянутым элементам SELECT может быть где угодно внизу, где угодно.
Теги:
web
client-side
development-environment

3 ответа

1

У вас действительно не должно быть двух элементов с одним ID на одной странице, так как это противоречит спецификации HTML и может вызвать проблемы.

Вместо этого рассмотрите возможность использования класса и отдельных идентификаторов, если необходимо, и выберите с помощью jQuery:

<select class="XYZ" id="select_1" .... >
<bla bla bla OTHER DOM ELEMENTS>
<select class="XYZ id="select_2" ... >
<bla bla bla OTHER DOM ELEMENTS>
<button id="ABC" />

<script>
$(function()
{
    $('#ABC').click(function()
    {
        var value = $('#select_2').val();
    });
});
</script>
0

Вы можете использовать.prev, как показано ниже

   $(this).prev().attr('value');
0

Не используйте Id-класс пользователя вместо этого, а затем найдите ближайший элемент, jquery не будет работать должным образом, когда будет более одного элемента с тем же идентификатором.

и в вашем html родительском и дочернем элементе выглядят как на одном уровне, если в этом случае используйте братьев и сестер вместо ближайшего.

  • 0
    да, с классом, который я могу выбрать с помощью $ (element) .closest ('. abc'). val ()); но я вынужден использовать Id здесь, потому что я являюсь одной и той же моделью для обоих видов, 1 вид в виде бритвы, а другой отображается через лайтбокс
  • 0
    поэтому вынужден использовать Id здесь
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню