jquery为select添加option的代码探讨

这是一道讨论“使用jQuery为select添加option选项的最佳代码方法”。分析哪一种的写法是最佳方法。在stackoverflow上众说纷纷,下面来看看有哪些写法。

第一种使用for循环

var selectValues = { "1": "test 1", "2": "test 2" };

for (key in selectValues) {
if (typeof (selectValues[key]) == 'string') {
$('#mySelect').append('<option value="' + key + '">' + selectValues[key] + '</option>');
}
}

第二种使用append

$.each(selectValues, function(key, value) {
$('#mySelect')
.append($('<option>', { value : key })
.text(value));
});

第三种同样是append,使用了链式写法,可能比上面还慢

$.each(selectValues, function(key, value) {
$('#mySelect')
.append($("<option></option>")
.attr("value",key)
.text(value));
});

第四种使用了push+join的方法,据说是最快的一种方法

var output = [];

$.each(selectValues, function(key, value)
{
output.push('<option value="'+ key +'">'+ value +'</option>');
});

$('#mySelect').html(output.join(''));

第五种同时是append,不过把内容作为一个JSON的格式添加。可能比第二种快点。

$.each(selectValues, function(key, value) {
$('#mySelect').append($("<option/>", {
value: key,
text: value
}));
});

综合:可以使用第四种,速度比较快。或者使用第五种,清晰明了。


关注我

我的微信公众号:前端开发博客,在后台回复以下关键字可以获取资源。

  • 回复「小抄」,领取Vue、JavaScript 和 WebComponent 小抄 PDF
  • 回复「Vue脑图」获取 Vue 相关脑图
  • 回复「思维图」获取 JavaScript 相关思维图
  • 回复「简历」获取简历制作建议
  • 回复「简历模板」获取精选的简历模板
  • 回复「加群」进入500人前端精英群
  • 回复「电子书」下载我整理的大量前端资源,含面试、Vue实战项目、CSS和JavaScript电子书等。
  • 回复「知识点」下载高清JavaScript知识点图谱

每日分享有用的前端开发知识,加我微信:caibaojian89 交流