2013-06-05 58 views
0

在Android股票浏览器上,我可以在某些DOM元素(如标签)上“没有方法”点击“”,而在其他浏览器上工作。因此,我试图创建一个条件来检查方法是否存在。这是我到目前为止有:正确的方法来检查一个DOM元素对象是否有一个特定的方法?

<a href="test" id="test">test</a> 

if (typeof document.getElementById('test').click === 'function') { 
    alert('it has'); 
} else { 
    alert('it has not'); 
} 

http://jsfiddle.net/Acejt/1/

这似乎是工作,但我想知道,如果它是这样做的正确的方法,如果它是跨浏览器兼容。

+2

看起来不错。如果没有HTML并选择了一些东西,你也可以使用'document.createElement(“a”)。click' – Bergi

回答

5

尝试使用此方法列出所有元素的方法:

var el= document.getElementById('test'); 
for(var i in el){ 
    if(typeof el[i] == "function") 
    console.log(i + " is function. ") //+ el[i]) 
} 

以同样的方式,你可以使用它之前,检查是否存在方法:

if(typeof el["click"] == "function") 
el.click(); 
+1

OP似乎并不想列出所有的方法。你为什么暗示它? –

+0

@FelixKling你好菲利克斯,你说得对,我刚刚编辑了我的答案 – Cherniv

+0

谢谢!这比我原来的文章中的方法更好吗? – user1767586

相关问题