最初我有一个像这样的删除功能:
function ViewWorkflowDetail(btn, workflowId) {
$("#workflowDetailPanel").remove();
if (document.getElementById("workflowDetailPanel") == null) {
// Do something usefull here
}
}
哪个工作得非常出色。然而(本着尽可能多地使用JQuery的精神)我将其改为:
function ViewWorkflowDetail(btn, workflowId) {
$("#workflowDetailPanel").remove();
if ($("#workflowDetailPanel") == null) {
// Do something usefull here
}
}
但是现在$("#workflowDetailPanel")
永远不会为空。如果我再次改回它(到document.getElementById)
,那么就没有问题了。为什么第二个选项继续找到那个div?JQuery对象是否以某种方式维护在某种缓存中?
注意:使用完全相同的设置/数据来测试这两种情况。
答案 0 :(得分:7)
它永远不会为null,因为如果元素不存在,jQuery返回一个空数组,你必须检查数组的长度
if ($("#workflowDetailPanel").length > 0) {
// Do something usefull here
}