巧用sel.options[sel.selectedIndex].text与try{}catch{e}{}操作SELECT选项值

当select.value=value被赋予一个不存在的值时如果在这个时候用sel.options[sel.selectedIndex].text来获取当前选择文本会抛出异常。本文主要思想就是catch抛出的异常来断定select中不存在此value的选项,感觉这样做比循环获取每个option的value与新的value值比对是否相等更有效率,废话不多说,上菜!

<html>
<head>
<title>JS</title>
<script type="text/javascript">
function $(id)
{
return document.getElementById(id);
}

String.prototype.trim=function()
{
return this.replace(/(^\s*)|(\s*$)/g,"");
}
function init()
{
var originalSel = $("originalSel");
originalSel.options[0]=new Option("text1","1");
originalSel.options[1]=new Option("text2","2");
originalSel.options[2]=new Option("text3","3");
originalSel.options[3]=new Option("text4","4");
originalSel.options[4]=new Option("text5","5");
}

function alertText(){
var value = prompt('请您输入value值','');
if(value==null||value.trim()=="")
{
return;
}

var originalSel = $("originalSel");
originalSel.value=value;
try{
var text = originalSel.options[originalSel.selectedIndex].text;
alert("value="+value+"对应的text是"+text);
}catch(e){
if(originalSel.options[0])
{
originalSel.options[0].selected=true;
}
alert("您输入的value不存在!");
}
}

function add()
{
var textValue = prompt("请你输入Text,Value","text,value");
if(textValue==null)
{
alert("请您输入text,value!");
return;
}
var ary = textValue.split(",");
if(ary.length<2||ary[0].trim()==""||ary[1].trim()=="")
{
alert("key,value值不能为空!");
return;
}
var text = ary[0];
var value = ary[1];
var selObj = $("originalSel");
selObj.value=value;
try{
selObj.options[selObj.selectedIndex].text;
alert("select中已存在value为"+value+"的选项!");
return;
}catch(e){
selObj.options[selObj.options.length]=new Option(text,value);
selObj.value=value;
alert("增加成功!");
}
}

function remove(){
var value = prompt('请您输入value值','');
if(value==null||value.trim()=="")
{
return;
}
var originalSel = $("originalSel");
originalSel.value=value;
try{
originalSel.options[originalSel.selectedIndex].text;
originalSel.remove(originalSel.selectedIndex);
alert("删除成功!");
}catch(e){
if(originalSel.options[0])
{
originalSel.options[0].selected=true;
}
alert("select中不存在value="+value+"的选项!");
}
}
</script>

</head>
<body onload="init()">
<select id="originalSel" style="width:150px">
</select>
<br>
<input type="button" onclick="alertText()" value="alertText">
<input type="button" onclick="add()" value="addOption">
<input type="button" onclick="remove()" value="removeOption">
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值