JavaScript - 我自己的文档方法

发布于 2024-11-17 08:41:18 字数 434 浏览 6 评论 0原文

我写了一个自己的文档方法并且有效。像这样考虑它的使用:

document.myMethod();

如何动态地找出 myMethod 之前使用了哪些点符号?

document.getElementsByTagName('div')[0].myMethod();

我尝试了这个,但它不起作用。有什么想法吗?

更新:我正在制作自己的 getElementsByClass('class')。所以我必须知道应该检查哪些元素。 document.myMethod() 应检查所有元素,但 document.getElementById('id').myMethod() 仅检查 #id 的子元素。我该怎么做?

I wrote an own document method and it works. Consider the use of it like this:

document.myMethod();

How can I dynamically find out what dot notations were used before myMethod?

document.getElementsByTagName('div')[0].myMethod();

I tried this but it does not work. Any ideas?

Update: I'm making my own getElementsByClass('class'). So I have to know what elements should be checked. document.myMethod() should check all of the elements but document.getElementById('id').myMethod() only the childs of #id. How do I do that?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

岁月染过的梦 2024-11-24 08:41:18

首先,myMethod 并不存在于“所有”DOM Element 上,除非你把它放在 Element.prototype 等上,而且你真的不知道不想走这条路。

但如果这样做,那么 this 将引用调用该方法的 Element

First of all, myMethod does not exist on 'all' DOM Elements unless you put it on Element.prototype etc, and you really don't want to go down this path.

But if you do, then this will refer to the Element on which the method is invoked on.

月亮邮递员 2024-11-24 08:41:18

链接点符号函数(我认为)只是语法糖 - 您基本上是在前一个函数的输出上调用最后一个函数。据我所知, myMethod() 无法知道该函数的输入是什么,除非您将其作为函数的某种参数提供,例如:

document.getElementsByTagName('div')[0].myMethod('getElementsByTagName');

您为什么需要此信息?

Chaining dot notation functions is (I think) just syntactic sugar - you're basically calling the last function on the output of the previous function. As far as I'm aware myMethod() would have no way to know what the function was that provided it's input was, unless you provided it as some kind of parameter on the function, for instance:

document.getElementsByTagName('div')[0].myMethod('getElementsByTagName');

Why do you want this information?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文