之前我问过类似的(但不同的)question。
我已经改变了我接近问题的方式。
This是我的JSON文件。
到目前为止,这是我的javascript:
$(document).ready(function () {
var loadArticle = function (articleID, articleH) {
var article = $("#article").clone();
var thelist = '<dl id="article' + articleID + 'sections"></dl>';
$(article).attr("id", "article" + articleID);
$(article).append(articleH);
$(article).html(thelist);
return article;
}
var loadSection = function (articleID, sectionID, sectionContent) {
var section = "#article" + articleID + "sections";
$(section).append("<dt>Section " + sectionID + "</dt>");
$(section).append("<dd>" + sectionContent + "</dd>");
return section;
}
var loadConstitution = function (d) {
$.each(d, function (i) {
var articleID = i + 1;
var articleH = "<p class='lead' id='article" + articleID + "'><strong>Article " + articleID + "</strong></p>";
$("#constitutionHolder").append(loadArticle(articleID, articleH));
//$.each(d.sections, function(j){
// var sectionID = j + 1;
// var theSection = d.sections[j];
//$("#article" + articleID + "sections").append(articleID, sectionID, mySection);
//})
})
}
$.getJSON('data/stuff.json', loadConstitution);
})
基本上,我会浏览每个数据点并使用<div>
(或文章的编号)创建一个新的id="article1"
。然后,由于每个文章对象都填充了一个"sections"
数组,我需要访问此数组中的数据并将其附加到我拥有的<dl></dl>
。
在我的HTML中,这就是我.clone()
:
<div id="constitutionHolder">
<div class="alert text-black" id="article">
<p class="lead" id="articleHeader"><strong>Article 1</strong>
</p>
<dl id="sectionList"> <dt id="article_section">Section 1</dt>
<dd id="article_sectionINFO">this stuff belongs to section 1</dd>
</dl>
</div>
</div>
到目前为止我有两个问题:
$(article).append(articleH);
无法正常工作
我无法将这些部分加载到sectionList
。
我该如何解决这个问题?
答案 0 :(得分:1)
有很多方法可以解决这个问题,但是这里有一个示例,您可以根据自己的应用进行修改:http://jsfiddle.net/DgU3w/。 (请注意,我删除了一些细节以试图理解问题)
我在你的例子中注意到的一些事情:
loadArticle()
使用此声明进行了一些工作:$(article).html(thelist);
loadArticle()
克隆了一个HTML块,但随后它添加了与克隆的元素匹配的新元素。$(jQueryObj)
)并没有什么坏处,但它也没有必要。