使用jQuery从DOM元素创建json

使用jQuery从DOM元素创建json,jquery,json,dom,Jquery,Json,Dom,如果我有以下DOM元素 <div class="item">content1</div> <div class="item">content2</div> 任何建议的进一步阅读?您可以在项目div上循环,并将对象添加到数组中 var items = new Array(); $("div.item").each(function() { var item = {classname: this.className, content: $(t

如果我有以下DOM元素

<div class="item">content1</div>
<div class="item">content2</div>

任何建议的进一步阅读?

您可以在项目div上循环,并将对象添加到数组中

var items = new Array();

$("div.item").each(function() {
   var item = {classname: this.className, content: $(this).text()};
   items.push(item);
});


演示:

为什么要这样做?有时数据的最佳表示是数据本身。考虑将数据保存在MVC模型中,而不是DOM……我试图构造一个JSON表,就像这里所用的那样:但是,不是直接在JSON对象中写入HTML,而是想在DOM中写入HTML,然后构造JSON对象。这是最好的方法吗?这是他在示例中使用的对象,但这样编写html似乎很混乱。ta=[{'start':新日期(2010,7,23),'content':'Conversation
},很好。这样做比使用.each()有什么好处?
.map
将返回一个数组,而不必事先创建一个数组。方法不错。看起来你可以摆脱最后一个。get().@aschuler:get()中的
.get()
将返回一个数组。否则,将返回一个jQuery对象。
var items = new Array();

$("div.item").each(function() {
   var item = {classname: this.className, content: $(this).text()};
   items.push(item);
});
var datas = [{ 
    'classname': 'item',
    'content': 'content1'
    }, {
    'classname': 'item',
    'content': 'content2'
    }
];

$.each(datas, function(key, value) {
    $('body').append('<div class="'+value.classname+'">'+value.content+'</div>');
});​
var datas = [];

$('div.item').each(function() {
   var data = { 
       classname: this.className, 
       content: $(this).text()
   };
   datas.push(data);
});

console.log(datas);
var data = $('div.item').map(function(){
    return {
        classname: 'item',
        content: $(this).text()
    };
}).get();