从服务器导致ajax成功callback函数奇怪的追加行为的数组?

//FIRST ARRAY OF DATA FROM SERVER: arrayOne = A:1,B:2,C:3. //SECOND ARRAY OF DATA FROM SERVER: arrayOne = A:4,B:5,C:6. //ajax success call back: function (data) { var i = data.arrayOne.length - 1; var Parent = $('<div>',{'class':'parent'}).appendTo('body'); var A = $('<h1>',{'class':'columns a','text':data.arrayOne[i].A}).appendTo('.parent'); var B = $('<h1>',{'class':'columns b','text':data.arrayOne[i].B}).appendTo('.parent'); var C = $('<h1>',{'class':'columns c','text':data.arrayOne[i].C}).appendTo('.parent'); } //FIRST CALLBACK RETURNS: "123" appended as expected //SECOND CALLBACK RETURNS: "123456 456" appended (expected output = 123 456). 

在两次callback之后,第一个callback的“Parent”div附加了“123456”,第二个callback的“Parent”div附加了“456”。 为什么会发生这种情况,如果我console.log而不是创build元素,它不会发生,所以它特别是与正在创build的元素。

为清楚起见,Chrome中的问题图片为: http : //oi57.tinypic.com/10ygfhx.jpg

(使用Node.js和Express)。

当第二个callback被执行时,在页面上有两个<div class="parent"></div>

你应该改变.appendTo('.parent');.appendTo(Parent); – 这样你将引用新创build的div,而不是页面上的所有.parent div。