让nav1选择时,nav2的第一个option值动态改变

解决方案 »

  1.   

    我改了一下
    <script>
    function abc(){
      var navarr=document.getElementById("nav1").childNodes;
      for(var i=0;i<navarr.length;i++){
        if(navarr[i].selected=="selected"){
      switch(navarr[i].nodeValue)
      {
        case 1:
    var tem="a";
    break;
    case 2:
    var tem="b";
    break;
    case 3:
    var tem="c";
    break;
    default
    break;
      }
      document.getElementById("nav2").childNodes[0].nodeValue=tem;
    }
      }
    }</script>
    但是还是有问题
      

  2.   


    function abc(){ 
      var nav1arr=document.getElementById("nav1"); 
      for(var i=0;i <nav1arr.length;i++){ 
      if(nav1arr[i].selected==true){ 
         var tem = 0;
      switch(parseInt(nav1arr[i].text))
      { 
    case 1: 
    tem=0; 
    break; 
    case 2: 
    tem=1; 
    break; 
    case 3: 
    tem=2; 
    break; 
    default:
    break; 
      }
      document.getElementById("nav2").selectedIndex=tem; 
      } 
      } 

    </script> 
    <select id="nav1" name="" onchange="abc();"> 
    <option>1 </option> 
    <option>2 </option> 
    <option>3 </option> 
    <option> </option> 
    </select> 
    <select id="nav2" name=""> 
    <option>a </option> 
    <option>b </option> 
    <option>c </option> 
    <option> </option> 
    </select>
      

  3.   

    朋友的可以,不过朋友个解释一下我的这个函数中的错误,谢谢了,刚学function abc(){
      var navarr=document.getElementById("nav1").childNodes;
      for(var i=0;i<navarr.length;i++){
        if(navarr[i].selected==true){
      switch(navarr[i].nodeValue)
      {
        case 1:
    var tem="a";
    break;
    case 2:
    var tem="b";
    break;
    case 3:
    var tem="c";
    break;
    default
    break;
      }
      document.getElementById("nav2").childNodes[0].nodeValue=tem;
    }
      }
    }
      

  4.   

    <script type="text/javascript">
    function abc(){ 
      var index=document.getElementById("nav1").selectedIndex; 
      var nav1arr=document.getElementById("nav1").options[index].text;
      var tem=0;
      switch(nav1arr) 
      { 
        case "1": 
    tem=0; 
    break; 
    case "2": 
    tem=1; 
    break; 
    case "3": 
    tem=2; 
    break; 
    default:
    break;
      } 
      alert(tem);
     document.getElementById("nav2").selectedIndex=tem; } </script> 
    <select id="nav1" name="nav1" onchange="abc();"> 
    <option value="1">1 </option> 
    <option value="2">2 </option> 
    <option value="3">3 </option> 
    </select> 
    <select id="nav2" name="nav2"> 
    <option>a </option> 
    <option>b </option> 
    <option>c </option> 
    </select>
      

  5.   

    我不是根据value判断,而是根据option中的文本,是不是应该用nodeValue;
    function abc(){ 
      var navarr=document.getElementById("nav1").childNodes; 
      for(var i=0;i <navarr.length;i++){ 
        if(navarr[i].selected==true){ 
      switch(navarr[i].nodeValue) 
      { 
        case 1: 
    var tem="a"; 
    break; 
    case 2: 
    var tem="b"; 
    break; 
    case 3: 
    var tem="c"; 
    break; 
    default 
    break; 
      } 
      document.getElementById("nav2").childNodes[0].nodeValue=tem; 

      } 
    }
    不知道这样写是哪里错了,是语法错误,还是
      

  6.   

    不明白你的default后面为什么一直没有个冒号,再去弄清楚childNodes,nodeValue是什么意思,select选项怎么设置
      

  7.   

    function abc(){ 
      var nav1arr=document.getElementById("nav1").childNodes; 
      for(var i=0;i <nav1arr.length;i++){ 
        if(nav1arr[i].selected==true){ 
      switch(nav1arr[i].value) 
      { 
        case 1: 
    var tem="a"; 
    break; 
    case 2: 
    var tem="b"; 
    break; 
    case 3: 
    var tem="c"; 
    break; 
    default 
    break; 
      } 
      document.getElementById("nav2").childNodes[0].value=tem; 

      } 
      } </script> 
    <select id="nav1" name="" onchange="abc();"> 
    <option value="1">1 </option> 
    <option value="2">2 </option> 
    <option value="3">3 </option> 
    <option> </option> 
    </select> 
    <select id="nav2" name=""> 
    <option>a </option> 
    <option>b </option> 
    <option>c </option> 
    <option> </option> 
    </select>
      

  8.   

    function abc(){
      var navarr=document.getElementById("nav1").childNodes;
      for(var i=0;i<navarr.length;i++){
        if(navarr[i].selected==true){
      switch(navarr[i].text)
      {
        case 1:
    var tem="a";
    break;
    case 2:
    var tem="b";
    break;
    case 3:
    var tem="c";
    break;
    default
    break;
      }
      document.getElementById("nav2").childNodes[0].text=tem;
    }
      }
    }这是我又改的,抱歉,刚学,有些还很弧度
    请问这里
    1,document.getElementById("nav2").childNodes[0].text表示第二个select的option[0]的文本有错误吗,
    2,是不是不能用nodeValue而要用text
      

  9.   

    这又不是XML,用nodevalue干嘛,select判断选中又不是根据value的值来的,select选中要么是selectedIndex,要么option中加selected
      

  10.   

    你没理解select选中是怎么回事,你这样的意思只是改了值,并没有告诉select哪个被选中了
      

  11.   

    明白了,nodevalue是 XML的节点值,我弄混了我的问题也叙述的不对,抱歉,nav2是这样的
    <select id="nav2" name=""> 
    <option> </option> 
    </select>我是要通过nav1来更新<option> </option>中的文本信息。不好意思 
      

  12.   

    function abc(){
      var navarr=document.getElementById("nav1").options;
      for(var i=0;i<navarr.length;i++){
        if(navarr[i].selected==true){
      switch(parseInt(navarr[i].text))
      {
        case 1:
    var tem="a";
    break;
    case 2:
    var tem="b";
    break;
    case 3:
    var tem="c";
    break;
    default:
    break;
      }
      document.getElementById("nav2").options[0].text=tem;
    }
      } 
    }
    终于改对了,哎,看来还要在努力啊,谢谢兄弟们了
    最好一个问题
    parseInt(navarr[i].text))这里一定要用parseInt吗,为什么呢
      

  13.   

    navarr[i].text这是一个字符串,而下面的case是数值,所以要转换,如果不转换的话就在case那里加“”