JavaScript:区分DOM元素对象和事件对象
可能重复:JavaScript:区分DOM元素对象和事件对象,javascript,jquery,Javascript,Jquery,可能重复: 我有以下简单的功能: function do_smth(el){ if(typeof el != 'object'){ el = this } var val = $.trim(el.value) /**** some code here ****/ } 有时它作为事件绑定到元素 (一) 有时它的用法如下 (二) 这两种方式都应该很好 问题是,在第一种情况下,即使没有传递参数,我也会将el作为Event对象。 所以typeo
我有以下简单的功能:
function do_smth(el){
if(typeof el != 'object'){
el = this
}
var val = $.trim(el.value)
/**** some code here ****/
}
有时它作为事件绑定到元素
(一)
有时它的用法如下
(二)
这两种方式都应该很好
问题是,在第一种情况下,即使没有传递参数,我也会将el
作为Event
对象。
所以typeof el!='对象“
无法按预期工作
如何区分DOM元素或事件?要区分DOM元素
if(el.nodeType)
您应该以一致的方式使用该函数。如果您确定它是一个元素,而不是文档或文本节点,那么您可以执行
el。nodeType==1
nodeType为元素节点返回1。是的,但是事件对象根本没有节点类型,所以只要查询值是否存在就可以了。如果(el.nodeType==1)做会更安全,虽然el
中有一个小错误,当用作事件处理程序时,它将是事件对象。不,el
总是被定义的,它可能是一个事件对,我误解了这个问题。更新。。。
do_smth(element)
if(el.nodeType)
function do_smth(el){
el = el.nodeType == 1 ? el : this;
var val = $.trim(el.value)
}