jQuery - 将元素添加到前一个/上一个元素

3

我在这里找不到相关内容,希望有人能帮忙。

我需要将链接(.more)添加到其前面的段落中 - 我肯定这很简单,但我还没有弄对:

<p>Lorem ipsum</p>

<p>Lorem ipsum</p>

<p>Lorem ipsum</p>

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

<p>Lorem ipsum</p>

我需要进行这项工作是与CMS相关的,最终HTML中可能会有更多的段落。但基于上述内容,我的目标是:

<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个回答

6

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')); 
});​

例子1例子2 包含多个 a 标签。


3

尝试使用

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

当然,$(".more")可以捕获所有类名为"more"的元素,但它适用于给定的示例。 - Tobias Krogh
我认为是这样,只是想让你注意到。 - The Alpha

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接