Эта штука отлично работает
<select name="selectbox" onchange="alert(this.value)">
Но я хочу выделить текст. Я пробовал таким способом
<select name="selectbox" onchange="alert(this.text)">
Он показывает undefined. Я нашел, как использовать DOM для получения текста. Но я хочу сделать это таким образом, я имею в виду, что хочу использовать только this.value.
javascript
select
Ааджахид
источник
источник
options
возвращает списокOption
объектов, которые, я не уверен, нигде указаны как то же самое, что и<option>
элементы. Лучше использовать проверенное временемtext
свойство выбранногоOption
, которое гарантированно заработает.Option
объекты такие же, какHTMLOptionElement
объекты. Если вы возражаете против использованияoptions
, вы можете в качестве альтернативы использоватьchildren
илиchildNodes
вместо него (не могу точно вспомнить, какой из них; я думаю, что они оба работают)options
, ноOption
объекты предшествуютHTMLOptionElement
объектам, и я не видел спецификации, которая требует этогоOption
иHTMLOptionElement
должна быть одним и тем же, даже если они вполне могут быть в большинстве браузеров, поддерживающих оба. Я считаю, что было бы безопаснее не смешивать эти два стиля. Итак, я бы предпочелthis.options[this.selectedIndex].text
или основанную на узлах вещьselectedIndex
, которая усложняется необходимостью отфильтровывать текстовые узлы с пробелами в IE.text
возвращает лиinnerHTML
или все текстовые узлы вместе?Чтобы узнать стоимость выбранного элемента, вы можете сделать следующее:
this.options[this.selectedIndex].text
Здесь
options
осуществляется доступ к различным из выбранных, иSelectedIndex
используется для выбора выбранного, затемtext
осуществляется доступ к нему.Подробнее о выбранном DOM здесь .
источник
this.options[this.selectedIndex].value
точно так же, какthis.value
, извините.selectedIndex
скорее чемSelectedIndex
.this.selectedOptions[0].text
(с очевидными расширениями, если у вас есть множественный выбор).Пожалуйста, попробуйте этот код:
$("#YourSelect>option:selected").html()
источник
Просто используйте
$('#SelectBoxId option:selected').text();
Для получения текста, как указано$('#SelectBoxId').val();
Для получения выбранного значения индексаисточник
Я знаю, что здесь никто не просит решение jQuery, но, возможно, стоит упомянуть, что с jQuery вы можете просто попросить:
$('#selectorid').val()
источник
Если вы хотите получить значение, вы можете использовать этот код для элемента select с id = "selectBox"
let myValue = document.querySelector("#selectBox").value;
Если вы хотите получить текст, вы можете использовать этот код
var sel = document.getElementById("selectBox"); var text= sel.options[sel.selectedIndex].text;
источник