Используя jquery, когда я нажимаю на ссылку, как я могу ссылаться на выпадающий список прямо над ним? - PullRequest
0 голосов
/ 16 сентября 2011

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

Как я могу получить ссылку на этот элемент выбора относительно моей ссылки, чтобы я мог проверить ее?

вот HTML ниже. обработчик события находится по щелчку ссылки «.Next».

 <select class="dropdown" name="myDropdown">
 <option value="">Select Item . . .</option>
 <option value="1">1</option>
 <option value="2">2</option>
 </select>

 <br>
 <a id="Next3" class="Next" href="">Next</a>&nbsp;

Ответы [ 3 ]

1 голос
/ 16 сентября 2011

Если выбор находится непосредственно перед ссылкой, тогда вы можете использовать prev http://api.jquery.com/prev/

Если HTML более сложный, то вам нужно будет его опубликовать.

1 голос
/ 16 сентября 2011

Используя JQuery, наиболее специфичный селектор выглядит так:

var reference = $("#Next3").prevAll("select.dropdown[name='myDropdown']:first")[0];
var selectedAny = reference.value != "";

Объяснение кода: $("#Next3") относится к ссылке с id="Next3" .prevAll() - это функция, которая выбирает все предыдущие элементы в соответствии с селектором (просто prev не работает).

select.dropdown[name='myDropdown']:first выбирает первый (ближайший) экземпляр элемента select, класс которого равен dropdown, а имя равно myDropdown (с учетом регистра).

1 голос
/ 16 сентября 2011

Вы можете использовать родственные или родительские селекторы или их комбинацию, но я бы не советовал этого делать, так как эти виды селекторов обычно бывают хрупкими.Когда вы изменяете структуру вашего HTML, селектор может потерпеть неудачу.

Я думаю, будет лучше, если вы дадите свой выпадающий идентификатор, а затем свяжете этот идентификатор со ссылкой, используя jquery.data ().

Обновление: учитывая опубликованный вами html, попробуйте использовать фильтр closest ().

Например, в вашем обработчике событий:

function someEventHandler() {
  $(this).closest('select.dropdown')...
}

Если имя известно или существует только однопара ссылок-выпадающих, вы можете просто обратиться к выбору по имени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...