var   eNewRow   =   document.getElementById("tbl").insertRow();  
 eNewCell.innerHTML   =   "<select size='1' id='select' name='select'> <option value='1'>字符型</option> <option value='2'>数值型</option>  </select> ";这句话表示的是我现在表格中动态生成的一列是下拉框选项选择后我要获得下拉框所选的值其实方法是可以的
  var ob = document.getElementById("select");
  var num = ob.options[ob.selectedIndex].innerText;这样就可以了
但是问题在这里 这个id 是最后一个生成的下拉框的ID,我前面生成的下拉框的id全部被替换成最后一个了
要想得到表格中每一个下拉框的选择就必须对每个下拉框设置不同的id,但这种好像很难实现。
请问高手怎么去解决这个问题,或者怎么换一种方法。

解决方案 »

  1.   

    可以不通过id来获取,通过tagname。
    定义和用法
    getElementsByTagName() 方法可返回带有指定标签名的对象的集合。语法
    document.getElementsByTagName(tagname)说明
    getElementsByTagName() 方法返回元素的顺序是它们在文档中的顺序。如果把特殊字符串 "*" 传递给 getElementsByTagName() 方法,它将返回文档中所有元素的列表,元素排列的顺序就是它们在文档中的顺序。
    提示和注释
    注释:传递给 getElementsByTagName() 方法的字符串可以不区分大小写。
    实例
    例子 1
    <html>
    <head>
    <script type="text/javascript">
    function getElements()
      {
      var x=document.getElementsByTagName("input");
      alert(x.length);
      }
    </script>
    </head>
    <body><input name="myInput" type="text" size="20" /><br />
    <input name="myInput" type="text" size="20" /><br />
    <input name="myInput" type="text" size="20" /><br />
    <br />
    <input type="button" onclick="getElements()"
    value="How many input elements?" /></body>
    </html>例子 2
    可以用 getElementsByTagName() 方法获取任何类型的 HTML 元素的列表。例如,下面的代码可获取文档中所有的表:var tables = document.getElementsByTagName("table");
    alert ("This document contains " + tables.length + " tables");
    例子 3
    如果您非常了解文档的结构,也可以使用 getElementsByTagName() 方法获取文档中的一个特定的元素。例如,下面的代码可以获得文档中的第四个段落:var myParagragh = document.getElementsByTagName("p")[3];
    不过,我们还是认为,如果您需要操作某个特定的元素,使用 getElementById() 方法将更为有效。
      

  2.   

    啥是value,不是innerText吧,嘿嘿
      

  3.   

    这样做<head>
        <script language="javascript">
            window.onload=function(){
                var  div  =  document.getElementById("a");
                var str  =  " <select size='1' id='select' name='select'> <option value='1'>字符型 </option> <option value='2'>数值型 </option>  </select> ";
                div.innerHTML+=str;
                div.innerHTML+=str;
                div.innerHTML+=str;
            }
            function test(){
                var  div  =  document.getElementById("a");
                var input=div.getElementsByTagName("select");
                for(var i=0;i<input.length;i++){
                    alert(input[i].options[input[i].selectedIndex].text)
                }
            }
        </script>
        <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
        <title>无标题文档</title>
    </head>
    <body>
        <div id="a"></div>
        <input id="a1" type="button" value="得到选择" onclick="test()">
    </body>
    </html>
      

  4.   

    你可以使用 一个辅助的hidden 存储的是新增 select 的个数,初值为0新增一个select , hidden 的值自增 1select 的命名 为select+ hidden 的值 ,形式为 select1 ,select2,select3  ...然后利用循环 就可以获得相应select 的值了
      

  5.   

    var ob = document.getElementById("select"); 
    改成var ob = document.getElementById("select")value;
    取得就是所选择的option的值 
      

  6.   

    给ID加个索引, 用个全局变量保存索引值
    var nIndex = 1;
    innerHTML = "<select size='1' id='select" + nIndex + "' name='select'>...";
    nIndex++;再根据索引来取值document.getElementById("select2")