javascript - 在不使用循环或 jQuery 的情况下获取数组或 JSON 中选择的选项值列表

标签 javascript jquery json

我需要数组或 JSON 中的选项值列表。 我使用了以下代码。

var compArray=[];
jQuery("#myCombo option").each(function(){
       compArray.push(jQuery(this).val());
       });

但我不想在循环中迭代选项,因为我的选项列表会增长。 我用过

JSON.stringify(document.getElementById("myCombo").options)

但是在 stringify 上它显示空的 JSON 对象,尽管我可以从

document.getElementById("myCombo").options[0].value

我必须将请求参数中的这些值传递给服务器,我不想经历循环。 请提出优化方案。

最佳答案

您可以像这样使用自定义序列化器:

var options = Array.prototype.slice.call(document.getElementById("sel").options),
    str = JSON.stringify(options, function(key, value){
       if(key === ""){
           return value;   
       }
       if(!isNaN(parseInt(key))) {
          return value.value;   
       }
    };

http://jsfiddle.net/Vh9qD/

或者使用迭代而不为每个选项创建 jQuery 实例

var options = Array.prototype.slice.call(document.getElementById("sel").options),
    str = JSON.stringify(options.map(function(item){return item.value;}));

检查此性能测试:http://jsperf.com/get-options

关于javascript - 在不使用循环或 jQuery 的情况下获取数组或 JSON 中选择的选项值列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13450686/

相关文章:

javascript - 正则表达式检查字段是否同时包含数字和字母

jquery - 如何在 jQuery/javascript 中保留子元素的绑定(bind)函数

javascript - jquery - 选择具有特定内容的元素

jquery - 删除基于名称的 jQuery 验证

javascript - 从 HTML 请求执行 Javascript 函数

javascript - <脚本类型 ="module"> 加载性能

javascript - 如何访问 JSON API 响应中的嵌套信息?

javascript - 随机化球体上的点并赋予它们 ID

json - JQ转换为数字,从shell变量生成新的json时转换为boolean

c# - 向不记名 token json 添加更多值