我正在尝试将JSON映射到特定的HTML结构。我想循环JSON,创建一个包含它应该具有的结构的jQuery对象,然后将它添加到之前启动的集合中。
我正在测试JSON的长度,之后是集合的长度,但是集合在0时出现。我无法理解为什么add()
方法不起作用我在这里。
我也尝试使用map()
获取我的收藏,但无济于事。
示例JSON
var d = [
{"NOTICE_ID":"23","TITLE":"fw4r4","BODY":"34t35t","CREATED_BY":"George","TIMESTAMP":"1400856243.1416"},
{"NOTICE_ID":"22","TITLE":"op","BODY":"op","CREATED_BY":"George","TIMESTAMP":"1400854953.8122"}
]
的jQuery
console.log(d.length)
$sections = $([]);
$.each(d, function(){
var $sect = $('<section id="notice-'+this['NOTICE_ID']+'" class="type-1" data-time="'+this["TIMESTAMP"]+'"></section>'),
$head = $("<h2>"+this["TITLE"]+"</h2>").appendTo($sect),
$date = $("<span>"+this["TIMESTAMP"]+"</span>").appendTo($head),
$body = $("<div>"+this["BODY"]+"</div>").appendTo($sect);
$sections.add($sect);
});
console.log($sections.length);
我希望$sections.length
与d.length
相同,但始终为0.
我的目标是最终对这些部分进行排序,然后将它们作为一个附加到容器中。如果我在循环中附加每个元素,它可以正常工作:
为什么我无法添加到空的jQuery对象?
答案 0 :(得分:1)
答案 1 :(得分:0)
只需将$ sections设置为标准javascript数组,并使用push()向其中添加新元素:
$sections = new Array();
.
.
.
$sections.push($sect);