检查DOM元素对象是否具有某种方法的正确方法?

时间:2013-06-05 10:51:57

标签: javascript

在Android Stock浏览器上,我得到“在某些DOM元素上没有方法'点击'”(如 a 标记),而它在其他浏览器上运行。因此,我正在尝试创建一个条件来检查方法是否存在。这是我到目前为止所得到的:

<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/

这似乎有效,但我想知道这是否是正确的做法以及是否跨浏览器兼容。

1 个答案:

答案 0 :(得分: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();