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
}));
});

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

原文链接:jquery为select添加option的代码探讨 版权所有,转载时请注明出处,违者必究。
注明出处格式:前端开发博客 (http://caibaojian.com/add-option-to-select-width-jquery.html)

时间: 2024-10-18 19:16:17

jquery为select添加option的代码探讨的相关文章

js、jquery、动态添加option项

var selid = document.getElementById("sltid"); for(var i=0; i<10;i++){     //循环添加多个值 sid.option[i] = new Option(i,i); } sid.options[sid.options.length]=new Option("1","2");   // 在最后一个值后面添加多一个 JQuery: [html] view plaincopy &

JavaScript为select添加option,select选项变化时的处理,获取slelect被选中的值

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>测试文件</title> <script> window.onload = function(){ //创建select控件 var _select = document.createElement("SELECT"); //添加选项 for(var i=1; i&

js 操作select和option常用代码整理

1.获取选中select的value和text,html代码如下: <select id="mySelect"> <option value="1">one</option> <option value="2">two</option> <option value="3">three</option> </select> $(&qu

js为select添加option

<select id="shi"> function loadInfo(){ var shengId=document.getElementById("sheng").value; shi.options.length=0; // 删除所有市下拉框的选项 var xmlHttp; if(window.XMLHttpRequest){ xmlHttp=new XMLHttpRequest(); }else{ xmlHttp=new ActiveXObjec

jQuery之select的option怎样绑定事件

HTML: <select id='select'> <option value='0'>上海</option> <option value='1'>北京</option> <option value='2'>广州</option> </select> JS: $('#select').change(function(){ var oV=$(this).find('option:selected').val()

jQuery获取select元素option的文本值和value值

('#list option:selected').text()('#list option:selected').val()

select初始化添加option,通过标签给出回显值,由于回显值和初始化值option中有一个值重复,去重等问题!

第一张图片: 第二张图片 /** *该方法是为了去重,所谓去重就是 因为回显给select附上了值并设置为selected选中状态,而在我们初始化所有的select添加option元素中于回显的值重复,那么就要去除select option中重复值 */ function removeRepeatSelectHour(h){   var $option=$("option:selected",h);//获取被选中,   // alert($option.val());  console

jquery获取select选中的值并对另一个select禁用启用

误区: 一直以为jQuery获取select中option被选中的文本值,是这样写的: $("#s").text();  //获取所有option的文本值 实际上应该这样: $("#s option:selected").text();  //获取选中的option的文本值 获取select中option的被选中的value值, $("#s").val(); $("#s option:selected").val(); js获

IE8下JQuery clone 出的select元素使用append添加option异常解决记录

遇到一个怪现象,由于配置参数是多实例的, 故采用JQuery对模板HTML代码进行clone, HTML代码中包括select标签, 在克隆之后需要对select进行添加option. 在firefox和chrome浏览器上都没有问题,在IE10下也没有问题, 但是在IE8下就出现问题,使用append添加option后,IE8上就显示不出来新添加option. 示例代码如下,对于clone出的第二个select有问题,但是通过打印,发现添加后的option数目是正确的3个. 这个就太令人费解了