jQuery DOM 遍历的澄清
我不确定我是否完全理解 jQuery 文档中所说的 DOM 遍历。这真的意味着遍历包装对象中的 DOM 副本吗?在我看来,实际的遍历是在选择元素时完成的,而使用 .get() 和 .next() 这样的方法实际上是在遍历 DOM 的副本。我在这一点上是对的,还是我错过了什么?
提前致谢!
I'm not sure I'm completely understanding the jQuery docs here when they say DOM traversal. Does it really mean traversing a copy of the DOM in the wrapper object? It seems to me the actual traversal is done when selecting elements, whereas using methods like .get() and .next() are really traversing a copy of the DOM. Am I right on this, or did I miss something?
Thanks in Advance!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
jQuery 函数返回一个对象。它具有数字属性,其值是对 DOM 元素的引用,而不是副本。因此,给出以下内容:
paragraphs 将是一个具有“0”属性的对象,该属性的值是对 id p0 的 p 元素的引用,以及一个“1”属性,它是对 id p1 的 p 元素的引用。您可以使用以下方式引用第一个 p:
jQuery 有助于“遍历 DOM”,因为您可以使用选择器(或多个选择器)来“收集”元素作为对象的属性,然后迭代该对象的数字属性并执行以下操作:和他们一起做点什么。因此,要将类添加到上面的 p 元素,您可以执行以下操作:
普通 javascript 中的等效项是:
其中 myLib.addClass 是一个简单的函数,用于将类添加到 className 属性。如果 addClass 函数更聪明一点,它可以接受元素引用的数组(或类似数组的对象),那么 POJS 版本将是:
因此,构建等效的“临时”“DOM 遍历”功能是不是特别难。
The jQuery function returns an object. It has numeric properties whose values are references to DOM elements, not copies. So given the following:
paragraphs will be an object that has a '0' property whose value is a reference to the p element with id p0, and a '1' property that is a reference to the p element with id p1. You could reference the first p using:
jQuery helps with "traversing the DOM" in that you can use a selector (or multiple selectors) to "collect" elements as properties of an object, then iterate over the numeric properties of that object and do something with them. So to add a class to the p elements above, you can do:
The equivalent in plain javascript would be:
Where myLib.addClass is a simple function to add a class to the className property. If the addClass function is a little smarter so it could accept an array (or array-like object) of element references, then the POJS version would be:
So building equivalent ad hoc "DOM traversal" capability is not particularly difficult.