我正在尝试动态创建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;
}
答案 0 :(得分:6)
而不是
JSon.Value = Type;
尝试
JSon[Value] = Type;
或者您将始终覆盖名为“Value”的键
答案 1 :(得分:0)
首先,HTML中不能有两个具有相同ID的节点。您必须为这些div
标记分配一些类。例如 -
<div class="selected" value="5|3"></div>
<div class="selected" value="3|65"></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"}