Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JQuery-$(#).remove()vs document.getelementbyid().remove_Javascript_Jquery_Html - Fatal编程技术网

Javascript JQuery-$(#).remove()vs document.getelementbyid().remove

Javascript JQuery-$(#).remove()vs document.getelementbyid().remove,javascript,jquery,html,Javascript,Jquery,Html,最初我有一个删除函数,如下所示: function ViewWorkflowDetail(btn, workflowId) { $("#workflowDetailPanel").remove(); if (document.getElementById("workflowDetailPanel") == null) { // Do something usefull here } } 这非常有效。然而(本着尽可能多地使用JQu

最初我有一个删除函数,如下所示:

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对象是否以某种方式维护在某种缓存中


注意:测试这两种情况时使用的设置/数据完全相同。

它永远不会为空,因为jQuery返回空数组。如果元素不存在,则必须检查数组的长度

  if ($("#workflowDetailPanel").length > 0) {
         // Do something usefull here
  }

如果您刚刚删除了元素,为什么还要麻烦再次检查它是否在文档中?您可以试试.isEmptyObject(),看看效果是否更好…@Pointy Good Point!也许只是为了让我自己放心。@Dean给出了一个错误:“该方法不是由对象指定的”。Sweet的工作非常出色!只要你允许,我会接受的!