#jquery #drop-down-menu
#jquery ( jquery ) #выпадающее меню
Вопрос:
У меня есть два связанных выпадающих списка.
Когда пользователь выбирает опцию из первого выпадающего списка, второй выпадающий список заполняется списком всех опций из первого выпадающего списка, которые НЕ были выбраны.
Я пытаюсь использовать jquery, чтобы получить все не выбранные параметры, но я все еще новичок в jquery и, должно быть, что-то не так.
Я пытаюсь выполнить следующее:
$('#segmentCrossStreet1:not(:selected)')
Здесь «segmentCrossStreet1» — это идентификатор первого выпадающего списка. Похоже, это не возвращает ничего полезного. Что я делаю не так?
Комментарии:
1. Является ли ваш выпадающий список элементом HTML или пользовательским с помощью JS и тому подобного? Было бы неплохо, если бы вы опубликовали свою структуру HTML.
2. Выпадающий список — это простой HTML-элемент, не созданный на заказ с помощью JS. Я заполняю его с помощью AJAX и jquery, но в остальном он статичен на странице.
Ответ №1:
Скрипка: http://jsfiddle.net/uzhWS / (эта скрипка также показывает , как окуклить другую <select>
)
Вы должны выбрать <option>
элементы, а не «выбранные <select>
» элементы:
$('#segmentCrossStreet1 option:not(:selected)');
Комментарии:
1. Это определенно улучшение, но все же дает мне все параметры из списка?
2. @AmandaMyer Нажмите на скрипку и внимательно посмотрите на цифры. Когда вы выберете «Тест 2», вы не сможете найти
Test 2
во втором<select>
.3. Ах, извините.. моя ошибка. Теперь я вижу, что он делает. Спасибо за пример. =)
4. Обратите внимание, что
.clone()
используется ранее.appendTo
. Если вы опуститеclone
, параметры исчезнут из оригинала<select>
.
Ответ №2:
Ваш текущий селектор:
$('#segmentCrossStreet1:not(:selected)')
Выполняет поиск всех #segmentCrossStreet1
элементов, которые не выбраны. Это то, чего ты хочешь? Я сомневаюсь в этом. Добавьте пробел перед :not(
поиском дочерних элементов:
$('#segmentCrossStreet1: not(:selected)')
Лучше, если вы сделали его более конкретным:
$('#segmentCrossStreet1: option:not(:selected)')
Комментарии:
1. Хотел бы я выбрать два ответа! Я выбрал Rob W, потому что он был первым, но ваш работает так же хорошо. Спасибо. =)
2. Не думайте, что я плачу в углу, потому что мой ответ не был принят 😉