我在我的应用程序中使用JSON,Ajax和jQuery。在我的HTML中,我有以下标记:
<div id="tab"></div>
Ajax脚本如下(简化,只显示必要的代码):
function checkVal() {
if (AJAX.readyState == 4 && AJAX.status == 200) {
var json = JSON.parse(AJAX.responseText);
var item = json.Item;
txt = "<div#tab>";
for (i = 0; i < item.length; i++) {
txt = txt + "<h3>" + item[i].ItemId + "</h3>";
txt = txt + "<p>" + item[i].ItemName;
txt = txt + "<br>" + item[i].Price + "</p>";
}
jQuery('div#tab').html(txt + "</div>");
}
}
jQuery代码如下:
jQuery('div#tab').accordion({collapsible:true});
我发现即使正确显示数据,手风琴也无法正常工作。我还发现jQuery('div#tab').draggable()
虽然手风琴失败了但仍有效。
有人可以解释这种奇怪的行为吗?或者我做错了什么?
答案 0 :(得分:1)
我认为你的for循环在你发布时有问题,不应该是这样的:
var txt = "";
for(i=0;i<item.length;i++) {
txt+="<h3>"+item[i].ItemId+"</h3>";
txt+= "<div><p>" +item[i].ItemName;
txt+= "<br>" +item[i].Price+ "</p></div>";
}
jQuery('div#tab').html(txt);
答案 1 :(得分:0)
在循环中使用jQuery('div#tab').html(txt);
,每次都会覆盖div。你应该在循环之后做到这一点
根据你的编辑:
txt=""
for{...}
$('#tab').html(txt)
所以删除txt中的“div”-tag,如果已存在于html-code
中