2012-04-21 96 views
2

我在這裏已經找不到這個了,希望有人能幫上忙。jQuery - appendTo前一個/前一個元素

我需要的鏈接(更多)追加到它前面的一段 - 我敢肯定,這是很簡單的,但不能完全得到它的權利:

<p>Lorem ipsum</p> 

<p>Lorem ipsum</p> 

<p>Lorem ipsum</p> 

<a href="#" class="more">Read more</a> 

<p>Lorem ipsum</p> 

可能有在最終的HTML中有更多段落,我需要這樣做的原因是CMS相關的。但基於上述情況,我的目標是:

<p>Lorem ipsum</p> 

<p>Lorem ipsum</p> 

<p>Lorem ipsum <a href="#" class="more">Read more</a></p> 

<p>Lorem ipsum</p> 

我已經試過:

$(".more").appendTo("p"); 

但很明顯,這將追加到所有段落......也許這是prevAll工作,但我無法完全放下手腳。

非常感謝您的幫助!

回答

4

HTML

<p>Lorem ipsum</p> 
<p>Lorem ipsum</p> 
<p>Lorem ipsum</p> 
<a href="#" class="more">Read more1</a> 
<p>Lorem ipsum</p> 
<a href="#" class="more">Read more2</a> 

JS

$('p').each(function(e){ 
    if($(this).next('a').hasClass('more')) 
     $(this).html($(this).html()+" ").append($(this).next('a')); 
});​ 

Example1Example2 with multiple a tags.

1

嘗試使用

var more = $(".more"); 
more.prev().append(" ").append(more); 
+0

你應該檢查http://jsfiddle.net/heera/Me5Dm/4/ – 2012-04-21 16:57:13

+0

當然'$(「。more」)'捕獲所有具有「more」類的元素,但它符合給出的示例 – 2012-04-21 17:01:05

+0

I這麼想只是想讓你注意。 – 2012-04-21 17:04:09