2009-10-30 45 views
27

Tôi có đoạn mã sau:remove append cuối cùng yếu tố jquery

$(this).children("a:eq(0)").append('<img src="'+ (arrowsvar.down[1]) 
    +'" class="' + (arrowsvar.down[0]) 
    + '" style="border:0;" />' 
); 

Bây giờ tôi muốn loại bỏ yếu tố nối cuối cùng (hình ảnh). Vui lòng đưa ra đề xuất.

Trả lời

32

Bạn có thể sử dụng bộ chọn :last-child để tìm các phần tử nối cuối cùng, sau đó bạn có thể remove nó:

$('img:last-child', this).remove(); 
// get the last img element of the childs of 'this' 
14

Mã từ câu hỏi ban đầu có thể tạo ra lỗi (sử dụng "này" với selector). Hãy thử cách tiếp cận sau:

$("#container-element img:last-child").remove() 
+0

Nếu chúng ta muốn loại bỏ tất cả các yếu tố mà chúng ta nối lần cuối cùng ?? –

+0

Bạn có thể muốn tránh sử dụng cụm từ "Mã trên" vì điều đó có thể thay đổi. – StubbornShowaGuy

+0

Cảm ơn - cố định rằng (nhiều năm sau) – eugene

2

dùng thử. Chỉ cần thêm .not (': last-child') loại trừ phần tử cuối cùng trong bộ sưu tập của bạn. Vì vậy, bạn không phải loại bỏ nó.

$(this).children("a:eq(0)").not(':last-child').append('<img src="'+ (arrowsvar.down[1]) 
    +'" class="' + (arrowsvar.down[0]) 
    + '" style="border:0;" />' 
); 
4

tuyệt vời, cảm ơn bạn rất nhiều eugene, điều đó thực sự đã giúp tôi. Tôi đã phải loại bỏ một bảng, tôi đã sử dụng đoạn mã sau.

$("#mydivId table:last-child").remove() 
+2

Điều này sẽ là một bình luận cho câu trả lời của eugene, chứ không phải là một câu trả lời riêng biệt. – gtmtg

34

Là một thay thế, đối với những người thích cách chương trình hơn và cú pháp:

$('#container-element img').last().remove(); 
Các vấn đề liên quan