我正在为具有特定类的所有元素执行每个函数,但是这里只获取最后一个,而不是将所有元素都放入JSON数组中。
JS在这里小提琴:http://jsfiddle.net/MYGCM/1/
这是HTML:
<div id="324834" class="selected_pages">One</div>
<div id="436346" class="selected_pages">Two</div>
<div id="768653" class="selected_pages">Three</div>
Jquery的
var pages = new Object();
var publish = [];
$('.selected_pages').each(function () {
pages.name = $(this).text();
pages.id = this.id;
publish.push({
Pages: pages
});
});
var json_pages = JSON.stringify(publish);
alert(json_pages)
关于此的任何输入?
答案 0 :(得分:3)
对于每个selected_pages
,您需要创建一个page
对象,如下所示
var publish = [];
$('.selected_pages').each(function () {
var pages = new Object();
pages.name = $(this).text();
pages.id = this.id;
publish.push({
Pages: pages
});
});
var json_pages = JSON.stringify(publish);
alert(json_pages)
我建议在这里使用.map()
var pages = $('.selected_pages').map(function () {
var page = new Object();
page.name = $(this).text();
page.id = this.id;
return { Pages: page};
}).get();
var json_pages = JSON.stringify(publish);
console.log(json_pages)
演示:Fiddle
答案 1 :(得分:1)
您可以使用map()
函数在字符串化之前构建数组。试试这个:
var pages = $('.selected_pages').map(function() {
var $el = $(this);
return { Pages: { name: $el.text(), id = this.id } };
}).get();
var json_pages = JSON.stringify(pages);
答案 2 :(得分:0)
JSFIDDLE: http://jsfiddle.net/MYGCM/3/
你真的想要这个:
var pages = new Object();
var publish = [];
$('.selected_pages').each(function () {
var page = new Object();
page.name = $(this).text();
page.id = this.id;
publish.push(page);
});
pages["Pages"] = publish;
var json_pages = JSON.stringify(pages);
alert(json_pages)