javascript - 如何从 HTML 选择框返回数组?

标签 javascript jquery

Possible Duplicate:
Storing select options and optgroups in a JavaScipt array

这是我的 HTML:

<select name="select">
   <option value='xxx'> xXx </option>    
   <optgroup label="Letters">
       <option value='a'> A </option>
       <option value='b'> B </option>
       <option value='c'> C </option>
       <option value='d'> D </option>
   </optgroup>
   <option value='zzz'> zZz </option>
</select>

我现在尝试从选择框的子项获取数组,如下所示:

[{"xxx":"xXx"},{"letters":{"a":"A","b":"B","c":"C","d":"D"}},{"zzz":"zZz"}]

取决于选择框选项和选项组。

最佳答案

下面是您要求的代码。

$(document).ready(function () {
var mtest = "[";
var i = 0;
var j = 0;

$("select").children().each(function() { 
 if (i==0) i+=1; else  mtest += ','; 
 j = 0;
if ($(this).children().length ==0) { 
     mtest += '{"' + $(this).attr('value') + '":"' +  $.trim($(this).html()) + '"}';
} else {
    mtest += '{"' + $(this).attr('label') + '":{';
    $(this).children().each(function() { 
        if (j==0) j+=1; else  mtest += ','; 
        mtest += '"' + $(this).attr('value') + '":"' + $.trim($(this).html()) + '"';

    });
  mtest += '}';
}

;})
mtest += ']';
document.write(mtest);

});​

这里http://jsfiddle.net/salih0vicX/WkaNv/你可以测试一下;我添加了一些额外的 HTML 用于测试目的...

如果您有任何问题或疑虑,请告诉我。

关于javascript - 如何从 HTML 选择框返回数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13002593/

相关文章:

javascript - RequireJS动态加载模块,无需导入所有模块

javascript - D3 弯曲链接,箭头未出现在屏幕上

javascript - webpack 在全局范围内执行模块

按需 JavaScript 无法在生产服务器上运行

javascript - 向下滚动时的 jQuery 对话框位置

javascript - 给定一个日期 (m/d/yyyy) 确定它是否是当月的 "the third tuesday"等

javascript - SVG 使虚线变为实线

javascript - ASP 数组到 JavaScript 数组

javascript - 仅使用 Javascript 单击功能后打开子菜单

jquery - 如何在 jquery 中停止事件传播?