Jquery $(';body';)能否返回空数组?

Jquery $(';body';)能否返回空数组?,jquery,Jquery,在什么情况下,$(‘body’)什么也找不到 我以为这是不可能的。因为DOM树中总是有一个body元素 然而,我刚刚修复了一个错误,正是由于这个原因。一些JS初始化代码保留一个引用body元素的变量。在某些情况下,此变量包含一个空的jQuery包装器。如果页面上没有该元素(错误代码)或页面未完全加载,则为“是” 将您的代码放入$(document).ready()是,如果页面上没有该元素(错误的代码)或页面未完全加载 将代码放入$(document).ready()如果在主体呈现之前将javas

在什么情况下,$(‘body’)什么也找不到

我以为这是不可能的。因为DOM树中总是有一个body元素


然而,我刚刚修复了一个错误,正是由于这个原因。一些JS初始化代码保留一个引用body元素的变量。在某些情况下,此变量包含一个空的jQuery包装器。

如果页面上没有该元素(错误代码)或页面未完全加载,则为“是”


将您的代码放入
$(document).ready()

是,如果页面上没有该元素(错误的代码)或页面未完全加载


将代码放入
$(document).ready()

如果在
主体
呈现之前将javascript放入
元素中,则会发生这种情况

以下文档将显示一条警告,提示

$('body')。长度==0

此习惯用法确保代码在页面加载后运行

另一个例子是,对上述代码稍加修改就会显示一条警告

$('body')。长度==1


$(函数(){
变量b=$(“主体”);
警报(“$('body')。长度=”+b.length);
});
你好,世界!

一个例子是,如果在
主体
呈现之前,将javascript放入
head
元素中,就会发生这种情况

以下文档将显示一条警告,提示

$('body')。长度==0

此习惯用法确保代码在页面加载后运行

另一个例子是,对上述代码稍加修改就会显示一条警告

$('body')。长度==1


$(函数(){
变量b=$(“主体”);
警报(“$('body')。长度=”+b.length);
});
你好,世界!

一种可能性是,如果在DOM中没有添加body并执行$('body')。是否对该变量进行了其他操作?也许不是选择器,而是对保存引用的变量进行了更改?这是这样的:如果我饿了,吃什么?->食物,如果我很冲动,吃什么?->一种可能是,若在DOM中并没有添加body并且执行了$('body')。那个变量上还有其他操作吗?也许不是选择器,而是对保存引用的变量进行了更改?这是这样的:如果我饿了,吃什么?->食物,如果我很冲动,吃什么?->水。
<!DOCTYPE html>
<html>

  <head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>

    <script type="text/javascript">
      var b = $('body');
      alert("$('body').length == " + b.length);
    </script>

  </head>

  <body>
    <h1>Hello World!</h1>
  </body>

</html>
$(function() {
   // Your code here
});
<!DOCTYPE html>
<html>

  <head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>

    <script type="text/javascript">
      $(function() {
        var b = $('body');
        alert("$('body').length == " + b.length);
      });
    </script>

  </head>

  <body>
    <h1>Hello World!</h1>
  </body>

</html>