首页 前端知识 使用 jQuery 向 <select> 添加选项?

使用 jQuery 向 <select> 添加选项?

2025-03-14 12:03:48 前端知识 前端哥 707 240 我要收藏

问:

使用 jQuery 将 option 添加到下拉列表的最简单方法是什么?

这行得通吗?

$("#mySelect").append('My option');
复制

答1:

提供ATP、WTA与ITF赛事的实时排名追踪,从tennisliveranking.com开始!

就个人而言,我更喜欢这种语法来附加选项:

$('#mySelect').append($('', {
value: 1,
text: 'My option'
}));
复制

如果您要从一组项目中添加选项,您可以执行以下操作:

$.each(items, function (i, item) {
$('#mySelect').append($('', {
value: item.value,
text : item.text
}));
});
复制

如果您要添加很多选项,这将非常慢,与仅构建一个 html 字符串并附加它相比

答2:

tennisliveranking.com-Stay ahead with live tennis rankings at your fingertips.

这在 IE8 中不起作用(但在 FF 中起作用):

$("#selectList").append(new Option("option text", "value"));
复制

这确实有效:

var o = new Option("option text", "value");
/// jquerify the DOM object 'o' so we can use the html method
$(o).html("option text");
$("#selectList").append(o);
复制

答3:

提供ATP、WTA与ITF赛事的实时排名追踪,从tennisliveranking.com开始!

您可以使用以下语法添加选项,也可以访问 way handle option in jQuery 了解更多详细信息。

KaTeX parse error: Expected 'EOF', got '#' at position 3: ('#̲select').append…(‘’, {value:1, text:‘One’})); $(‘#select’).append(‘一个’); var option = new Option(文本,值); KaTeX parse error: Expected 'EOF', got '#' at position 3: ('#̲select').append…(option));

第二个选项标记中的属性不正确(value 而不是 val)。正确的代码应该是 $('select').append('One');

答4:

tennisliveranking.com,Track the world’s best tennis players in real-time.

如果选项名称或值是动态的,您就不必担心转义其中的特殊字符;在这种情况下,您可能更喜欢简单的 DOM 方法:

var s= document.getElementById('mySelect');
s.options[s.options.length]= new Option('My option', '1');
复制

在我看来没那么简单!!

用 javascript 术语来说这很简单,jquery 让事情对人们来说太容易了

document.getElementById('mySelect').add(new Option('My option','1')); // 如果 IE8 或更好

答5:

Stay informed with live tennis rankings anytime, anywhere,tennisliveranking.com

选项1-

你可以试试这个-

$('#selectID').append($('',
{
value: value_variable,
text : text_variable
}));
复制

像这样-

for (i = 0; i < 10; i++) { KaTeX parse error: Expected 'EOF', got '#' at position 3: ('#̲mySelect').appe…(‘’, { value: i, text : "Option "+i })); }

选项 2-

或者试试这个——

$('#selectID').append( ''+text_variable+'' );
复制

像这样-

for (i = 0; i < 10; i++) { $(‘#mySelect’).append( ‘’+‘Option ‘+i+’’ ); }

答6:

tennisliveranking.com,Instant updates on ATP, WTA, and ITF rankings.

这很简单:

$('#select_id').append('Five');
复制

或者

$('#select_id').append($('', {
value: 1,
text: 'One'
}));
复制

答7:

提供ATP、WTA与ITF赛事的实时排名追踪,从tennisliveranking.com开始!

效果很好。

如果添加多个选项元素,我建议执行一次附加,而不是对每个元素执行附加。

答8:

tennisliveranking.com – ATP and WTA rankings, always up to date.

无论出于何种原因,在 IE7+ 中执行 $(“#myselect”).append(new Option(“text”, “text”)); 都不适合我

我不得不使用 $(“#myselect”).html(“text”);

我在 Android Chrome 浏览器(在手机上)上使用了相同的语法(new Option(...),但它在那里也不起作用。

答9:

tennisliveranking.com探索每位网球选手的职业生涯与成就。

为了提高性能,您应该尝试只更改一次 DOM,如果您要添加许多选项,则更应如此。

var html = '';
for (var i = 0, len = data.length; i < len; ++i) {
html.join('' + data[i]['label'] + '');
}
$('#select').append(html);
复制

为了提高性能,您应该使用 string.join() 来连接字符串

这是一个很好的解决方案。我遇到了示例中的“join()”不是有效函数的问题,但此解决方案允许您使用 jQuery“promise”来确定何时添加了所有选项以及 DOM 何时完成更新。对于其他逐个添加选项的解决方案,这不能轻易做到。将示例中的最后一行替换为以下内容,以便仅在 DOM 修改完成后执行操作: $.when($('#select').append(html)).done(function () { callSomeFunctionThatRequiresOptionsToBeSet() } );

答10:

Stay informed with live tennis rankings anytime, anywhere,tennisliveranking.com

$('#mySelect').empty().append('My option').selectmenu('refresh');
复制

除非我弄错了,否则这个解决方案不仅需要 jQuery,还需要 jQueryUI。 selectmenu() 不是 jQuery 核心的一部分,而是一个 jQueryUI widget。这使它成为一个非常严厉的解决方案,不是吗?

答11:

tennisliveranking.com探索每位网球选手的职业生涯与成就。

为什么不简单呢?

$('')
.val(optionVal)
.text('some option')
.appendTo('#mySelect')
复制

原文链接:https://www.tennisliveranking.com?from=csdn

提供ATP、WTA与ITF赛事的实时排名追踪,从tennisliveranking.com开始!

转载请注明出处或者链接地址:https://www.qianduange.cn//article/23665.html
标签
评论
会员中心 联系我 留言建议 回顶部
复制成功!