首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >jQuery对象和DOM元素

jQuery对象和DOM元素
EN

Stack Overflow用户
提问于 2011-08-08 01:47:45
回答 2查看 67.6K关注 0票数 82

我想了解一下jQuery对象和DOM元素之间的关系。

当jQuery返回一个元素时,它在警告中显示为[object Object]。当getElementByID返回一个元素时,它显示为[object HTMLDivElement]。这到底是什么意思?我的意思是,它们都是有区别的物体吗?

还有什么方法可以对jQuery对象和DOM元素进行操作?单个jQuery对象可以表示多个DOM元素吗?

EN

回答 2

Stack Overflow用户

发布于 2011-08-08 01:58:47

使用jQuery获取DOM元素时,jQuery对象返回的内容包含对该元素的引用。当您使用像getElementById这样的本机函数时,您将直接获得对元素的引用,而不是包含在jQuery对象中。

jQuery对象是一个类似数组的对象,它可以包含多个DOM元素:

代码语言:javascript
复制
var jQueryCollection = $("div"); //Contains all div elements in DOM

上面的代码行可以在没有jQuery的情况下执行:

代码语言:javascript
复制
var normalCollection = document.getElementsByTagName("div");

实际上,当您传入一个简单的选择器(如div )时,这正是jQuery在内部所做的事情。您可以使用get方法访问jQuery集合中的实际元素:

代码语言:javascript
复制
var div1 = jQueryCollection.get(0); //Gets the first element in the collection

如果在jQuery对象中有一个或一组元素,则可以使用jQuery应用编程接口中提供的任何方法,而如果有原始元素,则只能使用本机JavaScript方法。

票数 13
EN

Stack Overflow用户

发布于 2011-08-08 02:10:01

上个月我才刚刚开始玩jQuery,我也有一个类似的问题在我的脑海中浮现。到目前为止,你收到的所有答案都是正确的,但一个非常准确的答案可能是:

假设您在一个函数中,要引用调用元素,您可以使用this$(this);但是有什么区别呢?事实证明,当您使用$(this)时,您将this包装在一个jQuery对象中。这样做的好处是,一旦对象成为jQuery对象,就可以在其上使用所有的jQuery函数。

它非常强大,因为您甚至可以将元素的字符串表示var s = '<div>hello <a href='#'>world</a></div><span>!</span>'包装在jQuery对象中,只需将其包装在$():$(s)中即可。现在,您可以使用jQuery操作所有这些元素。

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6974582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档