Надеюсь, очень простой вопрос.
У меня обычная <select>
коробка такая
<select id="select">
<option value="1">this</option>
<option value="2">that</option>
<option value="3">other</option>
</select>
Я могу получить выбранное значение (используя $("#select").val()
) и отображаемое значение выбранного элемента (используя $("#select :selected").text()
.
Но как я могу сохранить в <option>
теге как дополнительное значение ? Я хотел бы иметь возможность сделать что-то вроде <option value="3.1" value2="3.2">other</option>
и получить значение value2
атрибута (в нашем примере это 3,2).
javascript
jquery
html
Джим Смит
источник
источник
Ответы:
HTML-разметка
<select id="select"> <option value="1" data-foo="dogs">this</option> <option value="2" data-foo="cats">that</option> <option value="3" data-foo="gerbils">other</option> </select>
Код
// JavaScript using jQuery $(function(){ $('select').change(function(){ var selected = $(this).find('option:selected'); var extra = selected.data('foo'); ... }); }); // Plain old JavaScript var sel = document.getElementById('select'); var selected = sel.options[sel.selectedIndex]; var extra = selected.getAttribute('data-foo');
См. Здесь как рабочий образец с использованием jQuery: http://jsfiddle.net/GsdCj/1/
См. Здесь как рабочий образец с использованием простого JavaScript: http://jsfiddle.net/GsdCj/2/
Используя атрибуты данных из HTML5, вы можете добавлять дополнительные данные к элементам синтаксически корректным способом, который также легко доступен из jQuery.
источник
selected.getAttribute('data-foo');
вас можно было использоватьselected.dataset.foo
Для меня это звучит так, будто вы хотите создать новый атрибут? Ты хочешь
<option value="2" value2="somethingElse">...
Для этого можно сделать
$(your selector).attr('value2', 'the value');
А затем, чтобы получить его, вы можете использовать
$(your selector).attr('value2')
Это не будет действительный код, но я думаю, он выполняет свою работу.
источник
Я сделал два примера из того, что, по моему мнению, может быть вашим вопросом:
http://jsfiddle.net/grdn4/
Проверьте это, чтобы сохранить дополнительные значения. Он использует атрибуты данных для хранения другого значения:
http://jsfiddle.net/27qJP/1/
источник
Разметка HTML / JSP:
<form:option data-libelle="${compte.libelleCompte}" data-raison="${compte.libelleSociale}" data-rib="${compte.numeroCompte}" <c:out value="${compte.libelleCompte} *MAD*"/> </form:option>
КОД JQUERY: Событие: изменение
var $this = $(this); var $selectedOption = $this.find('option:selected'); var libelle = $selectedOption.data('libelle');
Чтобы иметь элемент libelle.val () или libelle.text ()
источник
Чтобы сохранить другое значение в параметрах выбора:
$("#select").append('<option value="4">another</option>')
источник