2010-08-17 67 views
0

我一直在教自己的JS和Jquery主要是为GM脚本(我不是一个程序员白天),并试图想出一个解决方案,以追加一个DIV到另一个DIV为autotrader.com上的每一个列表。他们是多重父母下的兄弟姐妹。完整的代码在这里http://userscripts.org/scripts/review/83865和工作。寻找更好/优雅的解决方案appendTo DIV与jquery列表

我想出了这一点:

var counter=0; 
$('.dealer-info').each(function(){ 
$(this).appendTo($('.car-info')[counter]); 
counter=counter+1; 
}); 

有没有更优雅的方式来做到这一点?

任何意见将不胜感激,因为我希望我的代码更简单。

问候, 安东尼

回答

1

.each()提供索引作为第一个变量的回调函数,所以你可以这样做:在

$('.dealer-info').each(function(i) { 
    $('.car-info').eq(i).append(this); 
}); 

由于.appendTo()只是被周围翻转.append()内部是减少浪费,有点容易眼睛用这种方式使用.eq()来获得该索引处的项目。

为了更好的性能,你应该保持一个参考.car-info外循环,这样的:

var cars = $('.car-info'); 
$('.dealer-info').each(function(i) { 
    cars.eq(i).append(this); 
}); 
+0

很酷,谢谢。我试过了,效果很好。 – 7null 2010-08-17 20:52:11

+0

@ 7null - 欢迎:)请务必接受有关此问题和未来问题的答案,因为您通过旁边的复选标记旁边的任何一个最有帮助:) – 2010-08-17 20:59:48

0

所以,你要每个元素追加带班“经销商 - 信息”与类“汽车资讯”每一个元素?

请问$(".dealer-info").appendTo($(".car-info"));不是这样吗?

+0

我试过了,真的希望会工作,但它需要在网页上的所有15名.dealers的div和附加到每个.car - 所以我得到15个div在每个.car。 – 7null 2010-08-17 20:43:50

0

沿着你的代码行,但多一点jQuery的方式。还没有尝试过,但应该正常工作。

$('.dealer-info').each(function(index, value){ 
    $(this).appendTo($('.car-info').eq(index)); 
}); 
+0

谢谢我测试过,它的工作原理。 – 7null 2010-08-17 20:51:36

相关问题