0

可能重复:
在 JavaScipt 数组中存储选择选项和 optgroup

这是我的 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"}]

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

4

1 回答 1

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 用于测试目的......

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

于 2012-10-22T00:09:33.737 回答