2015-06-18 141 views
0

我想调用自定义方法的DOM元素DOM元素

这样上调用自定义的方法?是否有必要使用jQuery?

+0

是其绑定到特定的事件,比如'click','悬停“或等?或者你只是希望它成为函数中的可达值? – fuyushimoya

+0

不,我想调用输入DOM元素上的每个自定义函数 –

+0

这是什么原因? – fuyushimoya

回答

2

你不需要使用jQuery。您可以使用document.getElementById('MyObject')来获取对DOM节点的引用。

在其上运行您的doSomething功能,您将需要一个节点参数添加到它是这样的:

function doSomething(input) { 
    // do something with input DOM element 
} 

doSomething(document.getElementById('MyObject')); 

有它链接,你将需要添加到Element接口,所有的DOM节点实现。如果你走那条路,你可以这样做:

Element.prototype.doSomething = function() { 
    alert(this); 
} 

document.getElementById('MyObject').doSomething(); 

的jsfiddle:http://jsfiddle.net/6Lyb4b9p/

MDN:getElementById

+0

我不想将DOM元素的名称传递给函数,我想调用每个任意DOM元素上的函数。 –

+0

@EmadArmoun你的意思是你想要定义一个以通用方式绑定到每个DOM元素的函数? –

+0

@Cymen绝对 –

0

我找到了答案由我自己。

我可以用这种方式练习:

​​
2

没有jQuery的,你可以不喜欢

if (typeof $ != 'function') { 
 
    //create a function $ which will return the element with said id 
 
    window.$ = function(id) { 
 
    return document.getElementById(id); 
 
    } 
 
} 
 

 
//Add a method to the Elemen prototype so you can call it on any element object 
 
Element.prototype.doSomething = function() { 
 
    this.innerHTML = 'hi from inner'; 
 
} 
 

 
$('MyObject').doSomething();
<div id="MyObject"> 
 
    <!-- some elements --> 
 
</div>

+0

http://jsfiddle.net/arunpjohny/zvey4h55/ –