0

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

我想出了这个:

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

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

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

问候,安东尼

4

3 回答 3

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);
});
于 2010-08-17T20:39:15.590 回答
0

所以你想将每个带有“dealer-info”类的元素附加到每个带有“car-info”类的元素上?

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

于 2010-08-17T20:36:42.580 回答
0

沿着您的代码行,但更多的是 jQuery 方式。没试过这个,但应该可以正常工作。

$('.dealer-info').each(function(index, value){
     $(this).appendTo($('.car-info').eq(index));
});
于 2010-08-17T20:37:32.107 回答