5秒后删除新的div

eya*_*alb 14 jquery

我想添加一个div,并在5秒后删除它.我试过了

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

Sar*_*raz 35

你可以setTimeout像这样使用:

setTimeout(function(){
  $('#divID').remove();
}, 5000);
Run Code Online (Sandbox Code Playgroud)

5000(ms)表示5秒.您应该divID使用自己的div/element id 替换.

您可以首先使用length以下内容确保div存在:

setTimeout(function(){
  if ($('#divID').length > 0) {
    $('#divID').remove();
  }
}, 5000)
Run Code Online (Sandbox Code Playgroud)

  • 值得注意的是,检查div存在是完全没有必要的,因为在空的jQuery集合上调用$ .fn.remove()时jQuery不会出错. (2认同)

jen*_*ram 8

.delay()方法仅适用于使用标准效果队列或自定义队列的方法.

.delay()方法最适合延迟排队的jQuery效果.因为它是有限的 - 例如,它没有提供取消延迟的方法 - .delay()不能替代JavaScript的本机setTimeout功能,这可能更适合某些用例.

即,你可以使用setTimeout():( 演示)

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

或者,您可以使用效果方法删除元素:( 演示)

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