2012-08-17 63 views
-1

请告诉我,我做错了什么:哪里是在jQuery函数错误

我试图创造id在特定元素的每个孩子。以下代码不起作用:

$.get("/subject/list/", function(data){ 
    $("#subject-description-main-menu-list").children().each(function() { 
     var pk; 
     var subject; 
     for (var i=0; i<data.length; i++) { 
      pk = data[i]['fields']['pk']; 
      subject = data[i]['fields']['name']; 
     }; 
     $(this).attr("id","subject_"+subject+pk); 
    }); 

其余的代码工作正常! 谷歌Chrome控制台不给我任何错误, 但元素的id不会改变。

+0

你没有描述“错误”是什么。 – 2012-08-17 14:55:37

+0

您正在覆盖for循环的每个迭代中的'pk'和'subject',只是fyi。 – Jack 2012-08-17 14:56:21

回答

1

你跑过孩子为它创建一个ID?

在for循环中,您通过数据对象运行并设置pk和主题。因为您遍历整个数据对象并覆盖pk和主题,所以pk和主题始终设置为数据对象的最后一个元素。

因此PK和主题总是相同的值。如果您为每个孩子设置不同的ID,则不会覆盖PK和主题。

希望这是有帮助的。

0

我猜你得到的数据有length == 0。尝试记录数据并查看它包含的内容以及它是否有长度。

+1

这应该是该问题下的评论。 – 2012-08-17 14:56:22