【发布时间】:2017-04-09 01:37:03
【问题描述】:
我有一个网页,在正文中显示一个新闻故事,并有一个侧面导航栏,其中列出了其他四个故事。我正在尝试使用 json 文件来换出主体中的 html 文本。每个故事都有自己的 json 文件。这是我当前的 javascript 代码:
$(document).ready(function() {
$("#nav_list a").click(function(evt) {
buildName = "../json_files/" + $(this).attr("title") + ".json";
alert(buildName);
document.getElementById("main").innerHTML = "";
$.getJSON(buildName, function(data) {
$.each(data, function() {
$.each(this, function(key, value) {
$("#main").append(
"<h1>" + value.title + "</h2>" +
"<img src='" + value.image + "'>" +
"<h2>" + value.month + "<br>" + value.speaker + "</h2>" +
"<p>" + value.text + "</p>";
);
}); // inner each
}); // outer each
)}; // end of getJSON
}); // end click
}); // end ready
注意事项:
警报(buildName)用于我自己的测试。
下一行(w. innerHTML)应该清除当前的正文内容。 ** 注意:如果我注释掉了 $.getJSON 方法,这将有效!否则这个和我的 alert() 都会被完全忽略。
因为每个商店都有自己的 json 文件,所以我质疑 getJSON 中多个 $.each 方法的必要性。它没有任何区别(我下面的格式来自我的教科书,并且已经处理了一个包含多个条目的 json 文件)。
我什至尝试不清除初始的 innerHTML 并覆盖,但我可能有一些语法错误。这是尝试:
$.getJSON(buildName, function(data) {
$.each(data, function(key, value) {
$("#main").append(
("#main h1").innerHTML.replace("<h1>" + value.title + "</h2>");
("#main img").innerHTML.replace("<img src='" + value.image + "'>");
("#main h2").innerHTML.replace("<h2>" + value.month + "<br>" + value.speaker + "</h2>");
("#main p").innerHTML.replace("<p>" + value.text + "</p>");
)
}); // endeach
)}; // end of getJSON
你们怎么看?我完全被难住了。
【问题讨论】:
标签: javascript jquery html getjson