2012-06-22 3 views
4

У меня есть следующий HTMLКак добавить текст после класса последнего CSS

<div class="someClass"> 
    Some text 
</div> 
<div class="someClass"> 
    Some other text 
</div> 
<div class="add> 
    <img src="someImage.jpg"> 
</div> 

Теперь я хотел бы добавить еще один DIV после клика по надстройке изображения - но только после того, как последнего DIV с класс «someClass».

Если я использую следующий jQuery, он будет добавляться после каждого элемента someClass, поэтому несколько раз.

$(".add img").live("click", function() { 
    $(".containerFooter").after("<div class='someClass'>test</div>"); 
}); 

Есть ли способ добавить его только после последнего div с атрибутом someClass?

ответ

5

Вы ищете селекторе :last:

$(".someClass:last").after("<div class='someClass'>test</div>"); 
2
$('.someClass').last() 

ИЛИ

$('.someClass:last') 

даст вам последний элемент класса someclass

1

Использование:

$(".someClass").last().append("<div class='someClass'>test</div>"); 
1

Извините, вопрос полностью прочитал вопрос в первую очередь, обновил ans!

Кроме того, ваш HTML имеет опечатка, его делают

working demo

$(".someClass").last() //-> selects your last div with id = someClass 

.after("<div class='someClass'>test</div>");//-> place the html after the selected div 

Фактический код ниже

$(".add").live("click", function(){ 
    $(".someClass").last().after("<div class='someClass'>test</div>"); 
}); 
​ 
    ​ 
+1

Это добавляет его после '.add' div. Он хочет этого до этого, но после последнего '.someClass' div –

+0

Исправьте свой селектор' $ ('. SomeClass') '->, он также хочет его после последнего элемента div с этим классом, поэтому вы фильтруете для него также –

+0

wow, Спасибо за вашу помощь. Я исправил их в демо, но забыл скопировать сюда! –

1
$(".add img").live("click", function() { 
    $(".someClass:last").after("<div class='someClass'>test</div>"); 
}); 
0

Там может быть проще, но класс JQuery возвращает массив применимых объектов. Таким образом, вы можете найти последний такой объект, создать из него новый объект jquery, а затем работать с ним.

<html><title>JQuery Play</title> 
<h1>JQuery Play</h1> 
<script src="jquery-1.4.1.js" type="text/javascript" ></script> 
<script type="text/javascript"> 
function add() 
{ 
var x=$(".someClass"); 
$(x[x.length-1]).after("Added text"); 
} 
</script> 
<div class="someClass"> 
    Some text 
</div> 
<div class="someClass"> 
    Some other text 
</div> 
<div class="add"> 
    <button onclick="add()">Add</button> 
</div> 

</html> 
Смежные вопросы