0

我正在尝试做一些非常简单的事情,但它对我不起作用。我要做的就是在更改所选选项时获取所选选项的文本,如下所示:

<select id = "myselect">
  <option value = "1">One</option>
  <option value = "2">Two</option>
  <option value = "3">Three</option>
</select>

然后在 JavaScript 中:

$("#myselect").change(function () {
     var text = $(this).find("option[selected]").html();
     alert(text);
});

简单吧?问题是我只是得到空值。当我检查 DOM 时,我发现更改选定选项不会更改任何选项的“选定”属性。更改选项通常不会更新 DOM 吗?我很确定我以前做过。我在这里缺少什么?我正在使用 FireFox 13.0.1 版进行测试。

4

5 回答 5

3

这应该使用 jQuery 来完成:

$("#myselect").change(function () {
    var text = $(':selected',this).text();
    alert(text);
});​

jsFiddle 示例

或者,如果您只想使用纯 JavaScript:

document.getElementById('myselect').onchange = function() {
    alert(document.getElementById("myselect")[document.getElementById("myselect").selectedIndex].innerHTML);
}

jsFiddle 示例

于 2012-07-30T18:58:26.943 回答
2

您想使用:selected选择器。在此处查看示例

$( '#myselect' ).change(function () {
    var text = $( this ).children( 'option:selected' ).text();
    alert( text );
});

现场演示:http: //jsfiddle.net/xjhFf/

于 2012-07-30T18:57:00.733 回答
2
$(this).find("option:selected").html();
于 2012-07-30T18:58:03.527 回答
2

改成

    var text = $(this).find("option:selected").html();
于 2012-07-30T18:58:38.690 回答
0

您可以使用该selectedIndex属性并通过其索引检索该项目。

于 2012-07-30T18:57:34.650 回答