你如何使用javascript获取选项ID?

时间:2011-03-16 01:02:02

标签: javascript html

我有一个asp:listbox,我从数据库填充。但是,当我用鼠标悬停在选项ID上时,我正在尝试检索选项ID。我通常会做的是附加一个鼠标悬停事件,但显然在IE选项中无法识别鼠标悬停事件!那么我有什么方法可以得到我目前的选项吗?

<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>

我真正需要做的就是检索一些东西,这样我就可以说'我在x'元素上,这样我就可以在面板中显示一些其他信息。

有没有明智的方法可以做到这一点?

我将列表框包含在div中并附加了一个事件

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

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

感谢。

1 个答案:

答案 0 :(得分:0)

只需使用原生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;
}