2个页面有无关系?有无frame/iframe/open

解决方案 »

  1.   

    要是元素有id的话,用document.getElementById("id")来取得元素,
    要是通过name取的话,稍微麻烦些,用document.getElementsByName("name")[0]来获得。
      

  2.   

    要看两个页面所在窗口的关系
    父子:
    子引用父 opener.document.formname.selectname.xxx
    父引用子 win = open("child.htm");
            win.document.formname.selectname.xxx
    框架 top.framename.document.formname.selectname.xxx
    iframe document.frames["framename"].document.formname.selectname.xxx
      

  3.   

    首先谢谢大家的热心帮助,可能我刚才的问题没有说清楚我的情况是这样的:
    我的列表框行可以通过复制动态添加的
    这样的化就有重名的元素,
    现在我把我的代码全贴出来,希望大家能帮我看看,帮我想个解决办法,谢谢大家
    非常感谢!!
    <form name=form1 method="get" action="Result.jsp">  
    <table border="0" cellspacing="0" cellpadding="0"> 
      <tbody id="tbody">
        <tr>  
          <td><select name="p" id="p"> 
            <option>item1</option> 
            <option>item2</option> 
            <option>item3</option> 
            <option>item4</option> 
            <option>item5</option>
          </select></td>
          
          <td><select name="province" onchange="cityName(this)">
            <option value="">Province</option>
          </select></td>
    <td>
    <select name="city">
      <option value="">City</option>
    </select></td>      <td><input type="button" value="Remove" onclick="removeRow(this.parentNode.parentNode)"></td>
        </tr>
        </tbody>
        <tr>
          <td><input name="button" type="button" value="Add row" onclick="addRow()"></td>
    <td><input type="submit" name="Submit" value="search"></td>
    </tr>
      </table></form>
      <script type="text/javascript">
    var provinceName = ["z", "f", "a", "j"];//["浙江", "江苏", "安徽", "江西"];
    var city1 = ["h", "l", "w", "s", "j", "h"];//["杭州", "宁波", "温州", "绍兴", "金华", "湖州"];
    var city2 = ["n", "s", "w", "c", "z", "x"];//["南京", "苏州", "无锡", "常州", "镇江", "徐州"];
    var city3 = ["h", "w", "h", "q", "x"];//["合肥", "翕县", "黄山", "祁门", "休宁"];
    var city4 = ["n", "j", "l", "s", "x", "j"]; //["南昌", "九江", "赣州", "上饶", "新余", "景德镇"];
    //你在ASP输出的页面里应该看到如上这般的JS数组, 能看到则表示成功function province()
    {    var e = document.form1.province;
        for (var i=0; i<provinceName.length; i++)
           e.options.add(new Option(provinceName[i], provinceName[i]));
    }
    function cityName(t)
    {
        var n=t.selectedIndex;
        //var e = document.form1.city;
        var e=t.parentNode.parentNode.city;//这是我也的,不对,实现不了
        e.options.length = 1;
        if (n == 0) return;
        var a = eval("city"+ n); //得到城市的数组名
        for (var i=0; i<a.length; i++) e.options.add(new Option(a[i], a[i]));
    }
    window.attachEvent("onload", province);  //初始时给省名下拉框赋内容function addRow()

        var root = document.getElementById("tbody");
        var allRows = root.getElementsByTagName('tr');
        var cRow = allRows[0].cloneNode(true)
        root.appendChild(cRow);
        

    function removeRow(r)
    {
        var root = r.parentNode;
        var allRows = root.getElementsByTagName('tr')
        if(allRows.length>1)
            {root.removeChild(r);}
        else
            alert("only one row left, you can not remove it!");
    }
    </script>
      

  4.   

    function cityName(t) 

        var n=t.selectedIndex; 
        //var e = document.form1.city; 
        var e=t.parentElement.nextSibling.firstChild;//这是我也的,不对,实现不了 
        e.options.length = 1; 
        if (n == 0) return; 
        var a = eval("city"+ n); //得到城市的数组名 
        for (var i=0; i <a.length; i++) e.options.add(new Option(a[i], a[i])); 
      

  5.   

    function cityName(t) 

        var n=t.selectedIndex; 
        //var e = document.form1.city; 
        var e=t.parentElement.nextSibling.firstChild;//这是我也的,不对,实现不了 
        e.options.length = 1; 
        if (n == 0) return; 
        var a = eval("city"+ n); //得到城市的数组名 
        for (var i=0; i <a.length; i++) e.options.add(new Option(a[i], a[i])); 
      

  6.   

    <html>
    <body>
    <form name=form1 method="get" action="Result.jsp">    
    <table border="0" cellspacing="0" cellpadding="0">   
       <tbody id="tbody"> 
         <tr>    
           <td> <select name="p" id="p">   
             <option> item1 </option>   
             <option> item2 </option>   
             <option> item3 </option>   
             <option> item4 </option>   
             <option> item5 </option> 
           </select> </td> 
           
           <td> <select name="province" onchange="cityName(this)"> 
             <option value=""> Province </option> 
           </select> </td> 
    <td> 
    <select name="city"> 
       <option value=""> City </option> 
    </select> </td>        <td> <input type="button" value="Remove" onclick="removeRow(this.parentNode.parentNode)"> </td> 
         </tr> 
         </tbody> 
         <tr> 
           <td> <input name="button" type="button" value="Add row" onclick="addRow()"> </td> 
    <td> <input type="submit" name="Submit" value="search"> </td> 
    </tr> 
       </table> </form> 
       <script type="text/javascript"> 
    var provinceName = ["z", "f", "a", "j"];//["浙江", "江苏", "安徽", "江西"]; 
    var city1 = ["h", "l", "w", "s", "j", "h"];//["杭州", "宁波", "温州", "绍兴", "金华", "湖州"]; 
    var city2 = ["n", "s", "w", "c", "z", "x"];//["南京", "苏州", "无锡", "常州", "镇江", "徐州"]; 
    var city3 = ["h", "w", "h", "q", "x"];//["合肥", "翕县", "黄山", "祁门", "休宁"]; 
    var city4 = ["n", "j", "l", "s", "x", "j"]; //["南昌", "九江", "赣州", "上饶", "新余", "景德镇"]; 
    //你在ASP输出的页面里应该看到如上这般的JS数组, 能看到则表示成功 
    function province() 
    {     var e = document.form1.province; 
        for (var i=0; i <provinceName.length; i++) 
           e.options.add(new Option(provinceName[i], provinceName[i])); 

    function cityName(t) 

        var n=t.selectedIndex; 
        //var e = document.form1.city; 
        var e=t.parentElement.nextSibling.firstChild;//这是我也的,不对,实现不了 
        e.options.length = 1; 
        if (n == 0) return; 
        var a = eval("city"+ n); //得到城市的数组名 
        for (var i=0; i <a.length; i++) e.options.add(new Option(a[i], a[i])); 

    window.attachEvent("onload", province);  //初始时给省名下拉框赋内容 function addRow() 
    {  
        var root = document.getElementById("tbody"); 
        var allRows = root.getElementsByTagName('tr'); 
        var cRow = allRows[0].cloneNode(true) 
        root.appendChild(cRow); 
         
    }  
    function removeRow(r) 

        var root = r.parentNode; 
        var allRows = root.getElementsByTagName('tr') 
        if(allRows.length> 1) 
            {root.removeChild(r);} 
        else 
            alert("only one row left, you can not remove it!"); 

    </script> </body>
    </html>