请教一个JS的问题。

<select name="planDataList[0].unitCd"> 
<option selected="selected" value="1">云县</option>
<option value="2">凤庆县</option>
</select>

----------------------------------------------------------
上面这一段html代码是通过js的innerHTML动态获得出来的字符串,请问我怎么拿到被选中的值。select的name是动态生成的。

 

我想问一下,你的这个HTML页面里共有几个这种通过代码动态生成的 select,如果只有一个的吧,那你可以这么来搞:
[code="java"]
var selectVar = document.getElementsByTagName("select");
var selectVal = selectVar[0].value;
alert(selectVal);
[/code]

你获得出来后打印出来没有?

[code="html"]<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">



获取select选中的值 <!-- /*** * * 获取select标签当前选中的值 * @param tagid 你页面select标签的name或id ***/ function printSelectValue(tagid){ var selectObj = document.getElementById(tagid)||document.all[tagid]; //获取select标签对象 var _options = selectObj.options;//获取select标签的所有的option对象 var selectIndex = selectObj.selectedIndex;//获取当前选中的options的索引值,从0开始 alert(selectObj.options[selectIndex].value);//option的值如:1 alert(selectObj.options[selectIndex].innerHTML);//option的文本内容如:云县 } //-->



云县
凤庆县



[/code]

你可以动态条用js函数,我想你的select 的name 既然动态生成的,所以,你可以动态想js函数传递tagid。

l楼上的回答已经很不错了。但是如果有多个select元素,1楼的朋友只能取所有的select元素的第一个。所以我建议,在生成这个stselect对象的时候,可以给他一个id值。然后可以通过
var selectEml = doument.getElementById(yourID);
alert(selectEml.value);
如此你就可以得到一个唯一的select元素的值了。

或者楼主在设置name的时候,把id的值同name相同好了。这样问题就可以得到解决。

[quote]select的个数是不固定的 [/quote]
那你是只想知道其中某几个 select 的已选值,还是要知道全部 select 的已选值。

如果是多的话,你可以这么试下:
[code="java"]
var selectVar = document.getElementsByTagName("select");

for(var i=0;i<selectVar.length;i++) {
var selectName = selectVar[i].name;
var selectVal = selectVar[i].value;
alert("name:" + selectName + ", value:" + selectVal);
}
[/code]

你这select取的名字真是.....
不过也可以取, js是很强大的, 任何符号当名字都能取.
var select = document.getElementsByName('planDataList[0].unitCd');
select = select ? select[0] : {};
alert(select.value);