2011-08-10 46 views
2

我有三個TD,並試圖將每個中的功能限制爲只有該TD。我該怎麼做呢?有了這個代碼,它採取所有3個圖像和插入所有的人都在H2前:jQuery - 範圍內的「每個」?

jQuery("td.frontpage_news").each(function() { 
    jQuery("span.frontpage_news p:first-child").has("a img").insertBefore("h2.contentheading.frontpage_news");  }); 

回答

3

您可以使用$(this)得到目前正在each處理的元素 - 與find使用結合該對象將允許您限定您的通話範圍:

jQuery("td.frontpage_news").each(function() { 
    var $that = jQuery(this); 
    var $thatHeading = $that.find("h2.contentheading.frontpage_news"); 
    $that.find("span.frontpage_news p:first-child") 
     .has("a img").insertBefore($thatHeading ); 
}); 

此處假定內容標題和首頁新聞項是td的子項。

+0

它仍然在插入前所有h2的。我可以做同樣的$這限制h2嗎?像'insertBefore(this).find(「h2.contentheading.frontpage_news」);' – lee

+0

我認爲你的最新代碼工作。我在'each'裏面試過:'jQuery(this).find(「span.frontpage_news p:first-child」)。has(「img」)。insertBefore(this).find(「h2.contentheading.frontpage_news 「); \t ',但由於某種原因,它將它插入h2(同級到td)以上的某個級別。 – lee

1

你可以做到這一點,而不使用每個。 只要使用此:

jQuery("td.frontpage_news span.frontpage_news p:first-child").has("a img").insertBefore("h2.contentheading.frontpage_news"); 

如果你真的需要使用每個然後提供this上下文jQuery的搜索withn

jQuery("td.frontpage_news").each(function() { 
    jQuery("span.frontpage_news p:first-child", this).has("a img").insertBefore("h2.contentheading.frontpage_news");  
}); 
0

試試這個:

jQuery("h2.contentheading.frontpage_news").before(jQuery("td.frontpage_news span.frontpage_news p:first-child").has("a img")); 
相關問題