2

JSON配列を動的に作成しようとしています。サイトには動的な数の <div id="#selected"> があり、それらの値をすべて取得して JSON 配列を作成する必要があります。

.push() 機能に遭遇しましたが、理解できませんでした。

<!-- there could be a million of these, or only one... each value is unique though -->
<div id="selected" value="5|3"></div>
<div id="selected" value="3|65"></div>


function json_array_selected() {

var JSon = {};
$('div#selected').each(function() {
        // let's first split the given values
        var Split = $(this).attr('value');
        Split = Split.split('|');
        var Type = Split[0];
        Value = Split[1];

        // now let's set up our Json array... using the value = type way, there should never be
        // any repeating 
        JSon.Value = Type;

});
return JSon;
}
4

2 に答える 2

6

それ以外の

JSon.Value = Type;

試してみてください

JSon[Value] = Type;

または、常に「Value」という名前のキーを上書きします

于 2012-07-09T22:32:52.583 に答える
0

まず、HTML で同じ ID を持つ 2 つのノードを持つことはできません。divこれらのタグに何らかのクラスを割り当てる必要があります。例えば ​​-

&lt;div class="selected" value="5|3">&lt;/div>
&lt;div class="selected" value="3|65">&lt;/div>

私はjsfiddle.netで次のコードを試しました

function json_array_selected() {
  var JSon = {};
  $('div.selected').each(function() {
    // let's first split the given values
    var Split = $(this).attr('value');
    Split = Split.split('|');
    var Type = Split[0];
    Value = Split[1];
    JSon[Value] = Type;
  });
  return JSon;
}
var res = json_array_selected();
alert(JSON.stringify(res));
alert(res["3"]);

結果の JSON 配列は

{"3":"5","65":"3"}
于 2012-07-09T23:01:16.187 に答える