我试图从每个循环中创建一个JSON树,从页面上的几个id获取信息。考虑每个id的名称类似于" textHolder1,textHolder2"等
$('[id^="textHolder"]').each(function(){
TextElementID = this.id;
TextElementContent = $(this).text();
TextElementClass = $(this).attr('class');
TextElementStyle = $(this).attr('style');
json = JSON.stringify({textElements:{TextElementID:{textContent:TextElementContent,textClass:TextElementClass, textStyle: TextElementStyle}}}, null, 4);
});
alert(json)
我试图用JSON获取此输出:
{
"textElements": {
"textHolder1": {
"textContent": "The content",
"textClass": "theclass",
"textStyle": "some-styles"
}
"textHolder2": {
"textContent": "The content1",
"textClass": "theclass2",
"textStyle": "some-styles2"
}
}
}
这是怎么做的,我做错了什么?
答案 0 :(得分:4)
您需要构建一个对象,然后JSON.stringify
最终对象。
var t = {};
$('[id^="textHolder"]').each(function(){
var $this = $(this);
t[this.id] = {
textContent: $this.text(),
textClass: $this.attr('class'),
textStyle: $this.attr('style')
};
});
json = JSON.stringify({textElements: t });
答案 1 :(得分:0)
如果需要在variable value
中使用key
作为JSON
,则需要将JSON
添加到json[variable]
而不是使用{}
在{variable:value}
中{variable:value}
。因为{"variable":value}
等于{variableValue:value}
而不是json={textElements:{}}
//TextElementID is your variable and it should be used as a key like that
json.textElements[TextElementID]={textContent:TextElementContent,textClass:TextElementClass, textStyle: TextElementStyle}
stringifiedJson = JSON.stringify(json);
。
所以你需要定义它;
{{1}}