日期:2014-05-18  浏览次数:20727 次

一个关于select中option 的问题
<select name="sc1" id="sc1" onkeydown="catch_keydown(this);" onkeypress="catch_press(this);" onChange="yzm(this.value)">
  
<option id=1 value=尖椒海带丝 >尖椒海带丝</option>

<option id=2 value=火腿肠炒蛋 >火腿肠炒蛋</option>

<option id=3 value=花菜木耳 >花菜木耳</option>

<option id=4 value=烤冬瓜 >烤冬瓜</option>

<option id=5 value=丝滑粉皮 >丝滑粉皮</option>

<option id=6 value=尖椒海带丝 >尖椒海带丝</option>

  </select>
这是一个select 里面的ID,value以及selectdindex.text 除了ID是循环出来的 其余的都是数据库中读出来的 怎么样用JS获取select里面option的ID
其实我有4个这样的select 里面的数据都是从同一表里获取的 怎样使用JS可以使第二个select显示出来的数据没有第一个selectindex.text显示的数据呢?
例如我的第一个select我选择了 火腿肠炒蛋 怎么样让第二个select显示出的数据中不在数显 火腿肠炒蛋 呢?

------解决方案--------------------
HTML code
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 <HEAD>
  <TITLE> New Document </TITLE>
  <META NAME="Generator" CONTENT="EditPlus">
  <META NAME="Author" CONTENT="">
  <META NAME="Keywords" CONTENT="">
  <META NAME="Description" CONTENT="">
  <script>
  function yzm(foo){
    var ops=foo.options;
    var message="备选菜品:";
    for(var i=0;i<ops.length;i++){
        message+=ops.item(i).value+";";
    }
    alert(message);
    var selectedFoo=foo.value;
    alert("选中菜品:"+selectedFoo);
    var ops2=document.getElementById("sc2").options;
    for(var j=0;j<ops2.length;j++){
        if(ops2.item(j).value==selectedFoo){
            ops2.remove(j);
        }
    }
  }
  </script>
 </HEAD>

 <BODY>
  <select id="sc1" onChange="yzm(this)">
    <option value="火腿肠炒蛋">火腿肠炒蛋</option>
    <option value="花菜木耳">花菜木耳</option>
    <option value="烤冬瓜">烤冬瓜</option>
    <option value="丝滑粉皮">丝滑粉皮</option>
    <option value="尖椒海带丝">尖椒海带丝</option>
  </select>
  <br>
  <select id="sc2">
    <option value="火腿肠炒蛋">火腿肠炒蛋</option>
    <option value="花菜木耳">花菜木耳</option>
    <option value="烤冬瓜">烤冬瓜</option>
    <option value="丝滑粉皮">丝滑粉皮</option>
    <option value="尖椒海带丝">尖椒海带丝</option>
  </select>
 </BODY>
</HTML>