如何在链式函数中将选定元素传递给“this”
Posted
技术标签:
【中文标题】如何在链式函数中将选定元素传递给“this”【英文标题】:How to pass selected element to 'this' in the chained functions 【发布时间】:2016-07-20 04:35:09 【问题描述】:我正在尝试了解链式函数的工作原理,尤其是如何将所选元素传递给链式函数。
假设我们有如下链式函数:
var func = ;
func.remove= function()
$(this).remove();
如何通过 jQuery 或 javascript 选择元素并将其传递给链式函数,如下所示:
var elm = $("foo");
elm.func.remove();
或
var elm2 = document.getElementById("foo");
elm2.func.remove();
【问题讨论】:
所有链式方法都是返回对象的函数。这允许开发人员简单地调用该返回对象的方法。您的第一个示例 (func,.remove
) 不是可链接的方法,因为它不返回任何内容。
看这个:***.com/questions/1768150/…
【参考方案1】:
链式函数是一种返回被调用对象的方法(因此它不能返回元素本身,除非您扩展原生 DOM 对象,不推荐这样做)。
func
没有被链接,因为它根本不是一个函数。 remove
在不返回它所属的对象之前没有被链接。
如果您想对元素执行链式函数,则需要定义一个对象,在该对象上定义链式方法,并将元素存储为该对象的属性。
例如:
function MyConstructor(element)
this._element = element;
MyConstructor.prototype.doA = function doA ()
console.log(this._element);
return this;
;
MyConstructor.prototype.doB = function doB ()
element.style.display = "none";
return this;
;
var example = new MyConstructor(document.getElementById('foo'));
example.doA().doB();
【讨论】:
非常感谢,您的解释非常有用。以上是关于如何在链式函数中将选定元素传递给“this”的主要内容,如果未能解决你的问题,请参考以下文章
如何在codeigniter中将ajax选择的依赖下拉选项传递给mysql数据库
如何在 Rails 视图中将 Ruby 变量传递给 JavaScript 函数?
如何在汇编函数中将元素数组作为参数传递时转发ARM寄存器的地址指针