菜鸟100分求助JS下拉菜单的问题

JavaScript09

菜鸟100分求助JS下拉菜单的问题,第1张

function showsubmenu(sid)

{

/*

whichEl = eval("document.getElementById('"+"submenu" + sid+"')")

imgmenu = eval("document.getElementById('"+"imgmenu" + sid+"')")

if (whichEl.style.display == "none")

{

if (whichEl.style.display=='none') whichEl.style.display=''

else whichEl.style.display = 'none'

imgmenu.background="image/menuup.gif"

}

else

{

if (whichEl.style.display=='none') whichEl.style.display=''

else whichEl.style.display = 'none'

imgmenu.background="image/menudown.gif"

}

*/

//某一分类弹开,其它分类自动关闭

whichEl = eval("document.getElementById('"+"submenu" + sid+"')")

imgmenu = eval("document.getElementById('"+"imgmenu" + sid+"')")

var newsTD=document.getElementsByTagName("td")

var obj=whichEl

if(obj.style.display=="none")

{

for(i=8i<newsTD.lengthi++)

{

if(newsTD[i].id.indexOf("submenu")!=-1)

{

if (newsTD[i].style.display!="none")

{

newsTD[i].style.display = "none"

}

}

if(newsTD[i].id.indexOf("imgmenu")!=-1)

{

newsTD[i].background = "image/menudown.gif"

}

}

obj.style.display=""

imgmenu.background="image/menuup.gif"

}

else if(obj.style.display!="none")

{

obj.style.display="none"

imgmenu.background="image/menudown.gif"

}

}

</SCRIPT>

js获取下拉列表框文本值,例如下面的HTML代码:

<select onchange="isSelected(this.value)" id="city"> 

<option 

value="1">北京</option> 

<option value="2" >上海</option> 

<option value="2" >广州</option> 

</select>

也就是说当用户选择“上海”这一列时,需要将“上海”这个名称保存起来。其实方法很简单。看下面javascript代码:

function isSelected(value) { 

var cityName 

var city = 

document.getElementById("city") 

//获取选中的城市名称 

for(i=0i<city.lengthi++){ 

if(city[i].selected==true){ 

cityName 

= city[i].innerText //关键点 

alert("cityName:" + cityName) 

}

也可以这样做:

function isSelected(value) { 

var city = document.getElementById("city") 

alert(city.options[city.selectedIndex].innerText) 

}

大致解释一下,首先在HTML页面上有一个下拉框,并为此下拉框定了一个“city”的id,并为其绑定了一个onchange事件,通过此事件调用javascript函数。

在javascript函数当中,通过domcument对象获取当前下拉框的节点元素,由于节点的值并非只有一个,所以我们可以通过循环节点来得到每个选项的值。在循环的时候通过判断当前选项是否选中,如果选中则使用city[i].innerText

方式获取当前所选中的文本值。当然如果需要获取选项值,只需如此即可:city[i].value.

至此,通过以上方法在IE下已能达到所要的结果。但是,在FIREFOX下测试时,发现此法不起作用,最后通过查阅资料发现另外一个方法。将city[i].innerText

改为 city[i].text即可。这种方法对IE及FIXEFOX都适用!