Javascript 删除计时器上动态添加的div
我想要一个Javascript 删除计时器上动态添加的div,javascript,jquery,Javascript,Jquery,我想要一个div在短时间内出现,然后消失 因此,我在单击按钮时动态创建div,然后在完成一些工作后,我希望将其从DOM中删除 因此,我设置了一个计时器,如下所示: var contentJoinTab = $("#..."); var divIdSubscribePleaseWait = "div-subscribe-pleasewait"; btnSubscribe.on("click", function (event) { displaySubscriptionWait();
div
在短时间内出现,然后消失
因此,我在单击按钮时动态创建div
,然后在完成一些工作后,我希望将其从DOM中删除
因此,我设置了一个计时器,如下所示:
var contentJoinTab = $("#...");
var divIdSubscribePleaseWait = "div-subscribe-pleasewait";
btnSubscribe.on("click", function (event) {
displaySubscriptionWait();
postMailingListSubscription();
});
function displaySubscriptionWait() {
var s = `<div id = ${divIdSubscribePleaseWait} class = "${classMailingListPleaseWait}">Please wait...</div>`;
contentJoinTab.append(s);
};
function postMailingListSubscription() {
// fake for now
window.setTimeout(function() {
removeSubscriptionWait();
}, 4000);
};
function removeSubscriptionWait() {
contentJoinTab.parent(`${divIdSubscribePleaseWait}`).remove();
// I've even tried the following to no avail
// $(`${divIdSubscribePleaseWait}`).remove();
// contentJoinTab.find(`${divIdSubscribePleaseWait}`).remove();
};
var contentJoinTab=$(“#…”);
var dividsubscribeepleasewait=“div subscribe pleasewait”;
btnSubscribe.on(“单击”),功能(事件){
displaySubscriptionWait();
postMailingListSubscription();
});
函数displaySubscriptionWait(){
var s=`请稍候……`;
contentJoinTab.append;
};
函数postMailingListSubscription(){
//暂时假装
setTimeout(函数(){
removeSubscriptionWait();
}, 4000);
};
函数removeSubscriptionWait(){
contentJoinTab.parent(`${dividSubscribeePleaseWait}').remove();
//我甚至试过以下方法,但都没有用
//$(`${dividSubscribeePleaseWait}')。删除();
//contentJoinTab.find(${dividSubscribeePleaseWait}').remove();
};
但是,即使对remove()
方法的调用没有错误,我试图删除的div
仍保留在DOM中,并且可见
我确实理解事件传播,但我的理解是,这与这里无关。如果我想将事件附加到动态创建的
div
或其任何父级的单击(或任何其他事件)上,这将是相关的。可以通过将该div的outerHTML设置为null来实现
函数addDiv(){
设s=“临时Div”
让root=document.getElementById(“root”)
root.innerHTML+=s;
}
函数removeDiv(){
设theDiv=document.getElementById(“tempDiv”);
theDiv.outerHTML=“”
}
addDiv()
设置超时(removeDiv,2000)
您可以通过将该div的outerHTML设置为null来实现
函数addDiv(){
设s=“临时Div”
让root=document.getElementById(“root”)
root.innerHTML+=s;
}
函数removeDiv(){
设theDiv=document.getElementById(“tempDiv”);
theDiv.outerHTML=“”
}
addDiv()
设置超时(removeDiv,2000)
您已将该div附加为contentJoinTab
的子项,但当您要删除它时,您会将其视为contentJoinTab
您还需要在选择器中添加ID前缀
试着改变
contentJoinTab.parent(`${divIdSubscribePleaseWait}`).remove();
到
您已将该div附加为contentJoinTab
的子级,但当您要删除它时,您会将其视为contentJoinTab
您还需要在选择器中添加ID前缀
试着改变
contentJoinTab.parent(`${divIdSubscribePleaseWait}`).remove();
到
调用removeSubscriptionWait
时,您可能缺少。
,并且还需要id=${dividSubscriptePleaseWait}
的
。
如果不清楚,请参见以下更改:
函数displaySubscriptionWait(){
var s=`请稍候……`;
contentJoinTab.append;
};
函数postMailingListSubscription(){
//暂时假装
setTimeout(函数(){
removeSubscriptionWait();
}, 4000);
};
函数removeSubscriptionWait(){
contentJoinTab.parent(`#${dividSubscribeePleaseWait}').remove();
//我甚至试过以下方法,但都没有用
$(`#${dividSubscribeePleaseWait}')。删除();
};
调用removeSubscriptionWait
时,您可能缺少
,并且还需要的
用于id=${dividSubscriptePleaseWait}
。
如果不清楚,请参见以下更改:
函数displaySubscriptionWait(){
var s=`请稍候……`;
contentJoinTab.append;
};
函数postMailingListSubscription(){
//暂时假装
setTimeout(函数(){
removeSubscriptionWait();
}, 4000);
};
函数removeSubscriptionWait(){
contentJoinTab.parent(`#${dividSubscribeePleaseWait}').remove();
//我甚至试过以下方法,但都没有用
$(`#${dividSubscribeePleaseWait}')。删除();
};代码>更新removeSubscriptionWait功能:
function removeSubscriptionWait() {
contentJoinTab.find('#'+`${divIdSubscribePleaseWait}`).remove();
};
更新removeSubscriptionWait函数:
function removeSubscriptionWait() {
contentJoinTab.find('#'+`${divIdSubscribePleaseWait}`).remove();
};
谢谢你,我记得我也试过(查找
),读了你的答案后我又试了一次,但没有用。真的需要一个runnable来看看原因。创建一个演示,复制问题谢谢,我记得我也尝试过(find
),我在阅读了你的答案后又尝试了一次,但没有效果。真的需要一个runnable来看看原因。创建一个演示,复制您想要的问题。我确实了解解决方法,并有更多的想法。我正在试图理解为什么删除
方法在这里不起作用。谢谢。我确实了解解决方法,并有更多的想法。我正在试图理解为什么删除方法在这里不起作用。该死!就是这样。丢失的磅/哈希符号就是问题所在。我真傻!谢谢。:-)很乐意提供帮助:)出于好奇,元素是否需要“
”,或者只缺少
?不,只需添加缺少的
即可。我还没注意到你所说的“
。该死!就是这样。丢失的磅/哈希符号就是问题所在。我真傻!谢谢。:-)很乐意提供帮助:)出于好奇,元素是否需要“
”,或者只缺少
?不,只需添加缺少的
即可。我还没有注意到你所说的“
。