JQuery - 添加DOM元素然后删除它

时间:2013-02-11 17:25:23

标签: jquery

我需要在父div中添加一个子div,然后在x sec中删除子div。

可能会有几个子div添加到父div。

识别和删除子div的最佳方法是什么?

$("#parent_div").prepend("<div>"+msg+"</div>");

感谢。

2 个答案:

答案 0 :(得分:7)

保留对它的引用:

function doTheChildDivThing() {
    var child = $("<div>" + msg + "</div>");
    $("#parent").prepend(child);
    setTimeout(function() {
        child.remove();
    }, 1000);
}

重新评论以下内容:

  

为什么在这种情况下,delay()(而不是setTimeout)不起作用?

delay适用于效果队列。 remove不是与效果相关的方法。您当然可以将delayeffects methods中的一个slideUp一起使用,例如function doTheChildDivThing() { var child = $("<div>" + msg + "</div>"); $("#parent").prepend(child); child.delay(1000).slideUp(function() { child.remove(); }); } 。然后,您将在效果方法的完成回调中删除子项,如下所示:

{{1}}

答案 1 :(得分:0)

尝试这种方式:

$("<div/>", {

  // PROPERTIES HERE

  text: "Click me",

  id: "example",

  "class": "myDiv",      // ('class' is still better in quotes)

  css: {           
     color: "red",
     fontSize: "3em",
     cursor: "pointer"
  },

  on: {
    mouseenter: function() {
      console.log("PLEASE... "+ $(this).text());
    },
    click: function() {
      console.log("Hy! My ID is: "+ this.id);
    }
  },

  append: "<i>!!</i>",

  appendTo: "body"      // Finally, append to any selector

}); 

// And remove 

setTimeout(() => {
    $('.myDiv').remove();
}, 1000)