2012-06-08 2 views
1

У меня есть страница с несколькими разделами .desc. Я хочу добавить некоторые html к последним параграфам внутри этих div.Как добавить html в последний параграф класса в jquery?

Я попытался это ..

$(".desc p:last").append(" <span class='orange readMore'>Read More</span> <span class='orange readLess'>Read Less</span>"); 

Однако это только добавляет его в последний абзац этого DIV во всей странице. Не для каждого параграфа внутри .desc div. Если это имеет смысл ...

<div class="desc"> 

       <p>Description1</p> 
      </div> 
<div class="desc"> 
       <p>Description2 <span class="orange readMore" style="display: inline; ">Read More</span> <span class="orange readLess" style="display: none; ">Read Less</span></p> 
     </div> 

ответ

1
$(".desc").each(function(){ 
    $(this).find('p:last').append("<span class='orange readMore'>Read More</span> <span class='orange readLess'>Read Less</span>"); 
}); 

Что-то вроде этого, может быть,

0

Попробуйте это:

$ ("div.desc ') каждая (функция() { $ (это) .find (.' Р: последний ') .after ("Read More Read Less"); });

+0

не работает, он добавляет два раза к последнему p – Beginner

1

Вы должны использовать :last-child вместо:

$(".desc p:last-child").append("Some stuff"); 

Селектор :last всегда будет уменьшать согласованный набор до последнего элемента в этом наборе. Он только вернет один элемент.

Из документов для :last-child (следующая цитата прекрасно описывает ваше точное проблемы):

Хотя :last соответствует только один элемент, :last-child может соответствовать более , чем один: один для каждого родителя.

Смежные вопросы