寻找更好/更优雅的解决方案,使用jquery在列表中附加到DIV

时间:2010-08-17 20:32:51

标签: jquery html appendto

我一直在教自己JS和Jquery主要用于GM脚本(我不是白天的程序员),并试图想出一个解决方案,将一个DIV附加到另一个DIV上,用于autotrader.com上的每一个列表。他们是多个父母的兄弟姐妹。完整代码在这里http://userscripts.org/scripts/review/83865并正常工作。

我想出了这个:

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

有更优雅的方法吗?

任何建议都会受到赞赏,因为我希望我的代码更简单。

此致 安东尼

3 个答案:

答案 0 :(得分:1)

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

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

由于.appendTo()在内部被翻转到.append(),因此使用.eq()来获取该索引处的项目时,这样做更容易浪费并且更容易实现。< / p>

为了提高性能,你应该在循环之外保留对.car-info的引用,如下所示:

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

答案 1 :(得分:0)

所以你想用“car-info”这个类将每个元素与“dealer-info”类附加到每个元素上?

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

答案 2 :(得分:0)

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

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