从服务器导致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。