получить text выбранного селекта с классом
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
</head><body>
<select class="oplataSelect">
<option value="oplNalKur">Наличными курьеру </option>
<option value="moneta32863">Карта сбербанк </option>
<option value="moneta1020">Яндекс деньги </option>
<option value="moneta1017"> <a class="tc-tiddlylink tc-tiddlylink-missing" href="#WebMoney">WebMoney</a> </option>
<option value="moneta31086">Киви кошелек </option>
<option value="moneta32767">Пластиковая карта VISA</option>
<option value="moneta36992">Пластиковая карта <a class="tc-tiddlylink tc-tiddlylink-missing" href="#MasterCard">MasterCard</a></option>
<option value="all">выбрать другой способ оплаты</option>
</select>
<script>
alert(document.querySelector('.oplataSelect').options[document.querySelector('.oplataSelect').options.selectedIndex].text)
</script>
</body>
</html>
очень мне не нравится конструкция (document.querySelector('.oplataSelect').options[document.querySelector('.oplataSelect').options.se lectedIndex].text) чтобы показать текс. Может быть это можно как-то покороче написать? |
Так по моему не короче. Но для меня лично чуть более понятно.
<html> <body> <select class="oplataSelect"> <option value="oplNalKur">Наличными курьеру </option> <option value="moneta32863">Карта сбербанк </option> <option value="moneta1020">Яндекс деньги </option> <option value="moneta1017"> <a class="tc-tiddlylink tc-tiddlylink-missing" href="#WebMoney">WebMoney</a> </option> <option value="moneta31086">Киви кошелек </option> <option value="moneta32767">Пластиковая карта VISA</option> <option value="moneta36992">Пластиковая карта <a class="tc-tiddlylink tc-tiddlylink-missing" href="#MasterCard">MasterCard</a></option> <option value="all">выбрать другой способ оплаты</option> </select> </body> </html>
var sel = document.getElementsByTagName("select");
var opt = document.getElementsByTagName("option");
sel[0].oninput = funcAlert;
function funcAlert(){
alert(sel[0].value);
for (var i=0;i<opt.length;i++){
if (opt[i].value == sel[0].value) alert(opt[i].innerHTML)
}
}
|
document.querySelector('.oplataSelect').selectedOptions[0].text;
|
нет. селектов разных на странице 3 штуки отличаются только классом.
getElementsByTagName не подойдет selectedOptions[0].text тоже не подойдет, потому что нужно будет получать text не первого, а того, что выбран. если честно, я очень удивлён, что текст можно получить только по индексу. Неужели нельзя его получить по его .value значению? |
sovsem-nub,
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
</head><body>
<select class="oplataSelect">
<option value="oplNalKur">Наличными курьеру </option>
<option value="moneta32863">Карта сбербанк </option>
<option value="moneta1020">Яндекс деньги </option>
<option value="moneta1017"> <a class="tc-tiddlylink tc-tiddlylink-missing" href="#WebMoney">WebMoney</a> </option>
<option value="moneta31086">Киви кошелек </option>
<option value="moneta32767" selected="selected">Пластиковая карта VISA</option>
<option value="moneta36992">Пластиковая карта <a class="tc-tiddlylink tc-tiddlylink-missing" href="#MasterCard">MasterCard</a></option>
<option value="all">выбрать другой способ оплаты</option>
</select>
<script>
var sel = document.querySelector('.oplataSelect');
alert(sel.querySelector('[value="'+sel.value+'"]').text)
</script>
</body>
</html>
|
| Часовой пояс GMT +3, время: 05:57. |