我一直在教自己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;
});
有更优雅的方法吗?
任何建议都会受到赞赏,因为我希望我的代码更简单。
此致 安东尼
答案 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));
});