我正在尝试迭代JSON响应对象以创建类别项列表。我正在尝试为每个超链接分配唯一的类别ID值,以便当用户单击超链接时,他们将转到第2页,然后页面将根据所选的类别ID进行过滤。我在FOR LOOP中遇到逻辑错误,其中所有类别ID都被分配给一个超链接。另外,有没有更好的方法在HTML页面之间传递数据?
$(document).ready(function() {
$.ajax({
url: "https://api.coursera.org/api/catalog.v1/categories",
type: 'GET',
dataType: "json",
success: function(data) {
//alert(data.elements.length);
for(var i = 0; i < data.elements.length; i++)
{
$("#courseLink").append("<a href='page2.html?CatId="+data.elements[i].id+"'>"+data.elements[i].name+"</a><br/>");
$("#courseLink").click(function() {
$("#test").append("work");
});
}
}
});
});
答案 0 :(得分:0)
这里有几个问题。
问题1:
您试图在#courseLink
内附加链接,这也是一个链接(<a>
标记)。
问题2:
$("#courseLink").click(function() {
$("#test").append("work");
});
点击事件绑定发生在每次迭代,这意味着单词“work”将被添加到您表单中的迭代次数。此外,该事件应绑定到class
选择器,而不是id
(.courseLink
而不是#courseLink
),因为id
应该是唯一的。
我modified your fiddle为每次点击只附加一次“工作”一词。