Possible Duplicate:
How does the jQuery pushStack function work?
在 jQuery API 中我看到了一个函数 pushStack
。描述说:Add a collection of DOM elements onto the jQuery stack.
有谁知道 jQuery 堆栈是什么以及它可以用来做什么?和DOM有关系吗?
最佳答案
当您将多个 jQuery 方法链接在一起并且每个方法返回一个新的 jQuery 对象时,jQuery 会跟踪堆栈中的所有 jQuery 对象。这允许您返回之前使用的 jQuery 对象,而不必将其保存在本地变量中。为了实现这一点,当 jQuery 方法通过方法调用创建一个新的 jQuery 对象时,它会调用 pushStack()
以允许新对象参与堆栈。
jQuery 方法 .end()
与 .pushStack()
有点相反,因为它返回堆栈中的一项以获取先前的 jQuery 对象并可以多次调用它以继续返回堆栈。请参阅the .end()
doc了解更多信息。
举个使用 .pushStack()
的例子,假设您想要一个方法来获取容器中的所有文本节点,您可以这样做,并使用以下方法返回新生成的 jQuery 对象.pushStack()
:
jQuery.fn.textNodes = function() {
var nodes = [];
this.each(function() {
var node = this.firstChild;
while (node) {
if (node.nodeType == 3) {
nodes.push(node);
}
node = node.nextSibling;
}
});
return this.pushStack(nodes, "textNodes");
};
关于jquery - 什么是 jquery 堆栈?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11896764/