如何使用JavaScript获得选项ID?

如何使用JavaScript获得选项ID?

问题描述:

我有一个asp:listbox,我从数据库中填充。但是,当我用鼠标将鼠标悬停在选项上时,我试图检索选项ID。我通常会做的是附加一个鼠标悬停事件,但显然在IE选项中不会识别鼠标悬停事件!那么有没有一种方法可以得到我目前的选择?如何使用JavaScript获得选项ID?

<select size="4" name="lstbox_AdvCat" id="lstbox_AdvCat" style="height:500px; width:285px;"> 
<option value="0" Title="">None</option> 
<option value="1" Title="Accessories 
Clothing 
Footwear 
Jewelry 
Watches">Apparel, Footwear, Accessories</option> 

我真正需要做的是找回东西,所以我可以说元素“过个IM”这样我就可以显示在面板上的一些其他信息。

是否有明智的方法来做到这一点?

我的列表框包裹在一个div并附加一个事件

function lstbox_AdvCatOver(mEvent) { 
    //internet explorer 
    if (mEvent.srcElement) { 
     alert(mEvent.srcElement.nodeName); 
    } 
    //the others 
    else if (mEvent.target) { 
     alert(mEvent.target.nodeName); 
    } 
} 

我很感兴趣,看看有什么我会得到,但我不知道如何扩展,以使其有用的 - 任何帮助。

谢谢。

+0

您是否使用ASP.NET?它现在有jQuery内置。 – 2011-03-16 01:23:43

就使用本机JS它可能是这个样子:

http://jsfiddle.net/5QMdv/1/

HTML:

<select size="4" name="lstbox_AdvCat" id="foo" style="height:500px; width:285px;"> 
    <option value="0" Title="">None</option> 
    <option value="1" Title="Accessories 
    Clothing 
    Footwear 
    Jewelry 
    Watches">Apparel, Footwear, Accessories</option> 
</select> 

JS:

function lstbox_AdvCatOver(mEvent) { 
    alert("nodeName: [" + this.nodeName + "] - value: [" + this.value + "]"); 
} 

var options = document.getElementById("foo").options; 

for (var i = 0; i < options.length; i++) {  
    var option = options[i]; 
    option.onmouseover = lstbox_AdvCatOver; 
} 
+0

这不适用于asp:listbox(正如我原来的状态),但这很好。它不承认这是我原来的问题的onmouseover事件。 – flavour404 2011-03-16 18:47:11