为.getElementById创建快捷方式

时间:2015-10-09 20:12:17

标签: javascript

我想要someElement.getElementById的快捷方式。

但是,我不应该拨打.getElementById(),而是如此说,我只是说,.foo()

例如,我可以说:

var element = document.foo("sampleID");
element.style.color = "red";

将ID为color的元素的#sampleID样式更改为红色。

或者:

var element = document.foo("someDiv").foo("myElement");
element.style.backgroundColor = "blue"

将身份someDiv的ID为myElement的孩子的文件的孩子的背景颜色更改为蓝色。

以更清晰的方式,这将寻找一个元素,该元素是文档的子元素,并具有ID someDiv。然后它会寻找具有id myElement的孩子。然后它会将其背景颜色更改为蓝色。

我试图在网上搜索这些类型的功能,但我不知道它们叫什么,所以我没有运气。

3 个答案:

答案 0 :(得分:1)

function foo(param) {
    doSomethingWith(param);
}

......并且这样称呼它:

foo(param);
  

但我怎么能这样做,所以你这样称呼呢?

     

param.foo();

不,你没有。 param是不能调用函数的参数。

通过定义需求的功能并返回其基础对象。

您可以为ClassName和其他人提供相同类型的功能。最好使用jQuery代替创建快捷方式功能。它具有更多实用性和其他基本和先进的使用方法。

var byId = function(id) {
  return document.getElementById(id);
}

alert(byId('MY_ID').innerHTML);
<p id="MY_ID">Hi</p>

答案 1 :(得分:1)

如果您想将getElementById别名为foo,那么无论如何,正如其他答案/评论所示,请

document.foo = document.getElementById;

可能不是一个好主意。

但您似乎想要在具有其他ID的元素内找到具有特定ID的元素。但ID是独一无二的。因此,不需要在具有另一特定ID的元素内搜索具有一个特定ID的元素。更基本的是,getElementById仅在document上定义,而不是在任意元素上定义。

因此,实际上没有办法搜索具有一个ID的元素,其中一个ID与getElementById的另一个想法相同;您需要使用document.querySelector('#someDiv #myElement'),但在所有合理的情况下,这完全等同于document.querySelector('#myElement'),这与document.getElementById('myElement')完全相同。

答案 2 :(得分:0)

简短回答:

document.foo = HTMLElement.prototype.foo = document.getElementById.bind(document);

允许您执行document.foo('id').foo('id2')

-

document是一个对象,getElementById是一个可以分配给这样一个对象的属性的函数。

如果您想让document.foo像[{1}}一样工作,请执行

document.getElementById

如果你想在所有document.foo = document.getElementById 上创建一个函数,那么你应该

HTMLElement

你通常不能在HTMLElement.prototype.foo = function() { ... } getElementById,因为你应该在文档上调用它(id应该是唯一的,因此它会有相同的结果)。如果你真的想这样做,

HTMLElement

-

更一般地说,对于HTMLElement.prototype.foo = document.getElementById 的大多数值,您可以设置param您想要的任何内容,包括函数

param.foo =

如果您希望将其应用于特定类型的所有元素,则应将其附加到元素的param.foo = function() { ... }

例如,如果您的类型为prototype,那么您可以将该函数附加到Bar

Bar.prototype

Bar.prototype.foo = function() { ... } 的实例将Bar函数可调用,如

foo()