2010-08-17 64 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

相關問題