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

时间:2012-10-21 21:57:26

标签: javascript jquery

  

可能重复:
  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"}]

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

1 个答案:

答案 0 :(得分:2)

以下是您要求的代码。

$(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 ...

如果您有任何问题或疑虑,请与我们联系。