【js】selector小记

本文详细介绍了如何通过JavaScript实现当Select组件的下拉选项改变时,动态显示所选选项的内容与值,并提供了jQuery和原生JavaScript两种方法进行优化。包括使用jQuery简化选择操作,以及解决原生代码中遇到的问题,如正确处理selected状态和避免选择项的唯一性冲突。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当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);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值