添加额外的数据来select使用jQuery的选项
非常简单的问题,我希望。
我有这样的通常的<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
属性的value2
(在本例中为3.2)。
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轻松访问。
对我来说,这听起来像你想创build一个新的属性? 你要吗
<option value="2" value2="somethingElse">...
要做到这一点,你可以做
$(your selector).attr('value2', 'the value');
然后检索它,你可以使用
$(your selector).attr('value2')
这不会是有效的代码,但我想它是做这个工作。
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 CODE:事件:改变
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>')