当selector值改变时,显示改后的option值:
<select id="seletor" onChange="route()">
<option value="0">A</option>
<option value="1">B</option>
<option value="2">C</option>
</select>
function route(){
var selector = document.getElementById("seletor");
var text = selector.options[selector.selectedIndex].text;
var value = selector.options[selector.selectedIndex].value;
alert(value + ":" + text);
}
PS: jQuery中:
var text = $("#selector")[0].options[$("#selector")[0].selectedIndex].text
select选中给定option text值的option(js换select选中的option项):
最终版:
var selectVal = $("select#e-role option:contains(" + roleName + ")").val(); $("#e-role").val(selectVal);
代码说明:
jquery选择器 elem:contains(text)表示选择包含有text内容的所有elem元素,所以整个选择器表示选择id为e-role的select元素的子元素option,且option中包含roleName字符串,即根据option text或value来选择相应的option。
将select的value,即选中项value,赋值为目标option的value即可。
错误代码:
一开始用的如下,一是find option找不到;二是.attr("selected", true)设置后,select不会控制selected option唯一性,所以需要手动全部设false,但是又出现问题,显示的选中项和代码中selected并不一样,控制台看了一下,发现select.val()是默认第一个,于是弃用,改为设置val值。
// $("#e-role").find("option[text="+row.role+"]").attr("selected",true);