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 的节点。您必须为这些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 回答