<script language=javascript>
function btnTest_onclick(){
var testOptions=test.options;
var i=0;
for (i=0;i<testOptions.length;i++){
if (test.options[i].value=="2"){
test.options.remove(i);
}
}
}
</script>
<select name=test size=1>
<option value="1">a</option>
<option value="2">b</option>
</select><input type=button name=btnTest onclick="btnTest_onclick()" value="测 试">
function btnTest_onclick(){
var testOptions=test.options;
var i=0;
for (i=0;i<testOptions.length;i++){
if (test.options[i].value=="2"){
test.options.remove(i);
}
}
}
</script>
<select name=test size=1>
<option value="1">a</option>
<option value="2">b</option>
</select><input type=button name=btnTest onclick="btnTest_onclick()" value="测 试">
不知道还有没有更加直接一点的方法(即不使用循环),比如通过value直接得到option这个对象,然后使用select的removeChild方法来删除
--〉可以
不通过循环可能比较难
<option value="1" id="1">a</option>
<option value="2" id="2">b</option>
</select>
<SCRIPT>
test.removeChild(test.options.all("2"))
</SCRIPT>有可能重复的情况下这么写:<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title></title>
</head>
<body>
<select name=test size=1>
<option value="1" id="1">a</option>
<option value="2" id="2">b</option>
<option value="1" id="1">a</option>
<option value="2" id="2">b</option>
</select>
<SCRIPT>var ops = test.options.all("2");
if (ops.length >1)
for (var i=ops.length-1 ; i>-1; i--) //记住,要从后面删除起
test.removeChild(ops[i]);
else
test.removeChild(ops);test.appendChild(test.removeChild(test.lastChild)); //这是为了对付IE那个显示紊乱的BUG</SCRIPT>
</body>
</html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title></title>
</head>
<body>
<select name=test size=1>
<option value="1" id="1">a</option>
<option value="2" id="2">b</option>
<option value="1" id="1">a</option>
<option value="2" id="2">b</option>
</select>
<SCRIPT>var ops = test.options.all("2");
if (ops.length >1)
for (var i=ops.length-1 ; i>-1; i--) //记住,要从后面删除起
test.removeChild(ops[i]);
else
test.removeChild(ops);if (test.children.length>0)
test.appendChild(test.removeChild(test.lastChild)); //这是为了对付IE那个显示紊乱的BUG</SCRIPT>
</body>
</html>
不过var ops = test.options.all("2");得到的ops如果只有一个value为2的option, ops.length这句话会不会出错。我印象中javascript在有多个同名id的对象的时候,会把这些对象自动放在一个数组中,但是如果只有一个唯一id的对象,在对他引用数组的一些方法和属性,好像就会报错了