使用jQuery从DOM元素创建json
如果我有以下DOM元素使用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
<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();