2012-06-22 52 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() 

OR

$('.someClass:last') 

會給你類的最後一個元素someclass

1

用途:

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

對不起,dint在第一次嘗試中完全讀完這個問題,更新了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'後面。他想在它之前,但在最後一個'.someClass' div –

+0

固定你的選擇器'$('。someClass')' - >他也只想要它在該類的最後一個div元素後,所以你過濾也是這樣 –

+0

哇,謝謝你的幫助。我在演示中更正了這些,但忘了複製到這裏! –

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>