Удалить новый div через 5 секунд

Я хочу добавить div и через 5 секунд удалить его. я попробовал

$("#mainContentTD").prepend("<div style='color: #038a00; padding-bottom:10px;'>Your detailes where sucsesfuly... </div>").delay(5000).remove("this:first-child");

Ответ 1

Вы можете использовать setTimeout следующим образом:

setTimeout(function(){
  $('#divID').remove();
}, 5000);

5000 (мс) означает 5 секунд. Вы должны заменить divID на свой собственный идентификатор div/element.

Вы можете убедиться, что div существует сначала с помощью length:

setTimeout(function(){
  if ($('#divID').length > 0) {
    $('#divID').remove();
  }
}, 5000)

Ответ 2

Метод .delay() работает только с методами, использующими стандартную очередь эффектов или пользовательскую очередь.

Метод .delay() лучше всего подходит для задержки между обработанными в очереди эффектами jQuery. Поскольку он ограничен - он, например, не предлагает способ отменить задержку - .delay() не является заменой встроенной функции JavaScript setTimeout, которая может быть более подходящей для определенных случаев использования.

I.e., вы можете использовать setTimeout(): (Demo)

var $elm = $("<div style='color: #038a00; padding-bottom:10px;'>Your detailes where sucsesfuly... </div>");
$("#mainContentTD").prepend($elm);
setTimeout(function() {
    $elm.remove();
}, 5000);

Или вы можете использовать метод эффекта для удаления в элемент: (Demo)

$("#mainContentTD")
    .prepend("<div style='color: #038a00; padding-bottom:10px;'>Your detailes where sucsesfuly... </div>")
    .children(':first')
    .delay(5000)
    .fadeOut(100);