有效地获取下拉列表中的选定选项(XHTML Select 元素)

发布于 2024-11-28 08:57:15 字数 407 浏览 0 评论 0原文

背景

使用 XHTML Select 元素的下拉列表中有大量选项(数十个)。

我需要使用 JavaScript 检索所选选项。

问题

目前我正在使用 jQuery :selected CSS 选择器,它按预期工作,但这种方法效率不高,因为它需要一段时间才能找到选定的选项 - 显然,这取决于客户端机器的 CPU 能力,但在具有 4GB RAM 的不错的 Intel Core 2 中,性能损失过大。

问题

无论是使用 jQuery 还是纯 JavaScript 和 DOM,我都需要以有效的方式获取此 XHTML Select 元素的选定选项。

先感谢您。

Background

There's a large list of options - dozens - in a drop-down list using an XHTML Select element.

Using JavaScript, I need to retrieve the selected option.

Problem

Currently I'm using jQuery :selected CSS selector and it works as expected, but this approach isn't efficient as it takes a while to find selected option - obviously, it depends on CPU power of client machine, but in a decent Intel Core 2 with 4GB of RAM, there's an excesive performance penalty.

Issue

Either using jQuery or plain JavaScript and DOM, I need to get selected option of this XHTML Select element in an efficient way.

Thank you in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

段念尘 2024-12-05 08:57:15

应该很简单:

// assuming `select` refers to the select DOM element
var selectedElement = select.options[select.selectedIndex];

请参阅 HTMLSelectElement [MDN]

更新:

在支持以下方法的较新浏览器中(它们是HTML5的一部分),您还可以使用:

var selectedElement = select.item(select.selectedIndex);
// or
var selectedElement = select[select.selectedIndex];
// or
var selectedElement = select.selectedOptions[0];

Should be as easy as:

// assuming `select` refers to the select DOM element
var selectedElement = select.options[select.selectedIndex];

See HTMLSelectElement [MDN].

Update:

In newer browsers which support the following methods (they are part of HTML5), you could also use:

var selectedElement = select.item(select.selectedIndex);
// or
var selectedElement = select[select.selectedIndex];
// or
var selectedElement = select.selectedOptions[0];
森林很绿却致人迷途 2024-12-05 08:57:15
var dropDown = document.getElementById("yourId");
dropDown.options[dropDown.selectedIndex];
var dropDown = document.getElementById("yourId");
dropDown.options[dropDown.selectedIndex];
你怎么敢 2024-12-05 08:57:15

使用 < 的 "vanilla" DOM selectedIndex 属性;选择>

var $select = $('#mySelect'),
    si = $select.get(0).selectedIndex,
    $selectedOpt = $select.children('option:eq(' + si + ')');

Use the "vanilla" DOM selectedIndex property of the <select>.

var $select = $('#mySelect'),
    si = $select.get(0).selectedIndex,
    $selectedOpt = $select.children('option:eq(' + si + ')');
南街九尾狐 2024-12-05 08:57:15
<select id="sel">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
</select>

$("#sel").val()
<select id="sel">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
</select>

$("#sel").val()
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文