2012-04-21 6 views
2

Я не мог найти это здесь уже и надеюсь, что кто-то может помочь.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"); 

Но, очевидно, это будет добавлять его ко всем пунктам ... возможно, это работа для возобладать, но я не могу на это положиться.

Большое спасибо за вашу помощь!

ответ

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

Example1 и Example2 with multiple a tags.

1

пытаются использовать

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

Вы должны проверить этот http://jsfiddle.net/heera/Me5Dm/4/ –

+0

, конечно, '$ (". More ")' ловит все элементы с классом «больше», но подходит для данного примера –

+0

I думаю, просто хотел, чтобы вы заметили. –