38

I have the following code:

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

Now I want to remove last appended element (an image). Please give suggestions.

shanethehat
  • 15,460
  • 11
  • 57
  • 87
Basharat Ali
  • 381
  • 1
  • 3
  • 3

5 Answers5

58

As an alternative, for those who likes more programmatic ways and syntax:

$('#container-element img').last().remove();
Arthur Kushman
  • 3,449
  • 10
  • 49
  • 64
36

You can use the :last-child selector to find the last appended element, then you can remove it:

$('img:last-child', this).remove();
// get the last img element of the childs of 'this'
Christian C. Salvadó
  • 807,428
  • 183
  • 922
  • 838
20

The code from the original question may generate errors (using "this" with the selector). Try the following approach:

$("#container-element img:last-child").remove()
eugene
  • 956
  • 1
  • 11
  • 13
6

amazing, thank you very much eugene, that really helped me. I had to remove a table, i used the following code.

$("#mydivId table:last-child").remove()
charles
  • 307
  • 5
  • 5
2

try this. Just added .not(':last-child') which excludes the last element in your collection. So you don't have to remove it.

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