0

重複の可能性:
選択したオプションと optgroup を JavaScipt 配列に格納する

ここに私の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 に答える