jQuery - appendTo previous / previous元素

时间:2012-04-21 16:43:16

标签: jquery appendto

我在这里找不到这个,希望有人可以提供帮助。

我需要将链接(.more)附加到它之前的段落 - 我确信这很简单,但不能完全正确:

<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的工作,但我不能完全指责它。

非常感谢您的帮助!

2 个答案:

答案 0 :(得分:5)

<强> 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 :(得分:1)

尝试使用

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