@superuberduper Я избегал jquery так долго, как мог, но сопротивление бесполезно. Вы будете чувствовать себя намного лучше после того, как вас ассимилируют.
Что означает синтаксис $ ("селектор", это)? У меня есть общая идея, но я не совсем уверен
JoshWillik
14
@JoshWillik с $("selector", this)вами находят все selectorэлементы внутри thisконтекста. Писать $("selector", this)почти так же, как $(this).find('selector')
Беллаш
8
@JoshWillik: так $()как это псевдоним jQuery(), вы можете найти документацию здесь: api.jquery.com/jQuery Подпись, заявленная там, очевидно, есть jQuery( selector [, context ] ). @Bellash: если это "почти то же самое", в чем разница? Или что быстрее? Я предпочитаю, .find()так как это больше ОО ИМО ...
Адриан Федер
7
Как проверить в случае множественного выбора?
Hemant_Negi
3
@ AdrianFöder Для вас и других людей, которые ищут его, .find()это примерно на 10% быстрее в соответствии с этим ответом: stackoverflow.com/a/9046288/2767703
Вышеупомянутое решение работает отлично, но я решил добавить следующий код для тех, кто желает получить выбранную опцию. Это позволяет получить выбранный параметр, даже если это значение выбора не изменилось. (Проверено только с Mozilla)
Привязка к optionсобытиям является рискованным предложением, особенно на мобильных устройствах. Например, Webkit не поддерживает это событие правильно: bugs.chromium.org/p/chromium/issues/detail?id=5284
Ян Кемп
Ладно, круто! Как я уже сказал, второе решение не поддерживается во многих браузерах!
Беллаш
15
Делегированная альтернатива
Если кто-то использует делегированный подход для своего слушателя, используйте e.target(это будет ссылаться на элемент select).
$('#myform').on('change','select',function(e){var val = $(e.target).val();var text = $(e.target).find("option:selected").text();//only time the find is requiredvar name = $(e.target).attr('name');}
Я скопировал ваш код в IE 11 и получил ошибку. Я закончил с this.options[ this.options.selectedIndex ]. Mozilla говорит, что поддерживается Firefox с 26, IE Нет поддержки.
Бернхард Доблер
6
<selectid="selectId"><optionvalue="A">A</option><optionvalue="B">B</option><optionvalue="C">C</option></select>
$('#selectId').on('change', function () {
var selectVal = $("#selectId option:selected").val();
});
Сначала создайте select option. После этого jqueryвы можете получить текущее выбранное значение при изменении пользователем select optionзначения.
если это так, то почему "var selectedVal = $ (" # selectElement "). val ()" work¿
LuisE
Случай получает значение, когда событие change отправляется на элемент select. Значение не будет обновляться при выборе изменений, если вам это нравится.
Ответы:
источник
$("selector", this)
вами находят всеselector
элементы внутриthis
контекста. Писать$("selector", this)
почти так же, как$(this).find('selector')
$()
как это псевдонимjQuery()
, вы можете найти документацию здесь: api.jquery.com/jQuery Подпись, заявленная там, очевидно, естьjQuery( selector [, context ] )
. @Bellash: если это "почти то же самое", в чем разница? Или что быстрее? Я предпочитаю,.find()
так как это больше ОО ИМО ....find()
это примерно на 10% быстрее в соответствии с этим ответом: stackoverflow.com/a/9046288/2767703Вы можете использовать метод поиска jQuery
Вышеупомянутое решение работает отлично, но я решил добавить следующий код для тех, кто желает получить выбранную опцию. Это позволяет получить выбранный параметр, даже если это значение выбора не изменилось. (Проверено только с Mozilla)
источник
option
событиям является рискованным предложением, особенно на мобильных устройствах. Например, Webkit не поддерживает это событие правильно: bugs.chromium.org/p/chromium/issues/detail?id=5284Делегированная альтернатива
Если кто-то использует делегированный подход для своего слушателя, используйте
e.target
(это будет ссылаться на элемент select).JSFiddle Demo
источник
Я считаю это короче и чище. Кроме того, вы можете перебирать выбранные элементы, если их несколько;
источник
selectedOptions
доступно не во всех браузерахthis.options[ this.options.selectedIndex ]
. Mozilla говорит, что поддерживается Firefox с 26, IE Нет поддержки.Сначала создайте
select option
. После этогоjquery
вы можете получить текущее выбранное значение при изменении пользователемselect option
значения.источник
источник
Другой и короткий способ получить значение выбранного значения,
источник
См. Официальную документацию API https://api.jquery.com/selected-selector/.
Это хорошо работает:
и
и быть легким для уникального выбора
источник
Вы можете использовать это событие jquery select change для получения значения выбранного параметра
Для демо
источник