$(document.body)和$(“body”)JQuery之间的区别
我是一个JQuery初学者,并在发现一些代码时通过一些例子。
$(document.body)
和$('body')
谁能告诉我这两个有什么区别?
他们引用相同的元素,不同的是,当你说document.body
你直接将元素传递给jQuery。 或者,当您传递string'body'
, jQueryselect器引擎必须解释string以找出它引用的元素。
在实践中,要么完成工作。
如果你有兴趣,在jQuery函数的文档中有更多的信息。
$(document.body)
正在使用全局引用document
来获取对body
的引用,而$('body')
是一个select器,jQuery将在其中获得对document
<body>
元素的引用。
我看不出有什么重大区别,从一个到另一个没有任何明显的性能收益。
应该没有什么区别,也许第一个是更高性能,但我认为这是微不足道(你不应该担心这个,真的)。
把你的<body>
标签包装在一个jQuery对象中
这里的答案实际上并不完全正确。 closures,但有一个边缘情况。
不同之处在于$(“body”)实际上是通过标签名来select元素,而document.body则是引用文档上的直接对象。
这意味着如果你(或stream氓脚本)覆盖document.body元素(耻辱!)$(“身体”)仍然会工作,但$(document.body)不会。 所以根据定义,它们不是等价的。
我冒昧猜测还有其他边缘情况(如IE中的全局id'ed元素),这也会触发文档对象上重写的正文元素,并且也会应用相同的情况。
Outputwise两者是等价的。 尽pipe第二个expression式通过DOM根目录的顶部向下查找。 如果你已经有了document.body对象,那么你可能想避免额外的开销(尽pipe可能很小),以便JQuery进行换行。 请参阅http://api.jquery.com/jQuery/ #Selector上下文