jquery 添加DOM元素,然后删除它

4ioopgfo  于 2023-08-04  发布在  jQuery
关注(0)|答案(2)|浏览(135)

我需要在父div中添加子div,然后在x秒内删除子div。
父div中可以添加多个子div。
识别和删除子div的最佳方法是什么?

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

字符串

piwo6bdm

piwo6bdm1#

通过保持对它的引用:

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

字符串
回复您的评论:
为什么delay()(而不是setTimeout)在这种情况下不起作用?
delay使用效果队列。remove不是一个与效果相关的方法。当然,您可以将delay与其中一个effects methods一起使用,例如slideUp。然后你可以在effects方法的completion回调函数中移除子元素,像这样:

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

yfwxisqw

yfwxisqw2#

试试这个方法:

$("<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)

字符串

相关问题