使用jQuery从JavaScript对象中选择选项的最佳方法是什么?

2022-08-29 22:00:51

使用jQuery从JavaScript对象添加选项的最佳方法是什么?<select>

我正在寻找一些我不需要插件做的事情,但我也会对那里的插件感兴趣。

这就是我所做的:

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

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

一个干净/简单的解决方案:

这是matdumsa的清理和简化版本:

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

与 matdumsa 的更改:(1) 删除了 append() 中选项的关闭标记,(2) 将属性/特性移动到映射中,作为 append() 的第二个参数。


答案 1

与其他答案相同,以jQuery的方式:

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

答案 2
var output = [];

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

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

通过这种方式,您只需“触摸 DOM”一次。

我不确定最新的行是否可以转换为$('#mySelect').html(output.join('')),因为我不知道jQuery内部(也许它在html()方法中做了一些解析)