在我的html中:
<input type="checkbox" name="select">
<input type="radio" name="select">
由于某种逻辑原因,属性名称相同
在我的JS中
我写下面的代码:
$('input[type="checkbox"],input[type="radio"]').on("change",function(event){
console.log(event.target.nodename);
// on both cases it show "INPUT"
}
});
我如何知道我点击了复选框或单选按钮?
8条答案
按热度按时间2hh7jdfx1#
.nodeName
给出了所使用的html
标记,因此您必须使用.type
来获取其中的节点类型。试试这个:
Demo
50few1ms2#
对于那些寻找纯JavaScript方式的人来说,它是
event.target.tagName
。该属性是元素类型的大写字符串,如“A”、“UL”、“LI”等。
wbgh16ku3#
aurhwmvo4#
您可以使用
event.target.getAttribute('type')
代替enxuqcxy5#
尝试使用attr(),例如:
代码
cbjzeqam6#
对于jQuery的节点类型,可以用途:
agxfikkp7#
如果将事件传递给XMLHttpRequest的progress或error事件处理程序,或者IDB成功或error事件处理程序,则目标将是XMLHttpRequest或(IDB Request?)。不会有getAttribute或nodeName属性。
虽然肯定有更好的方法,但这将获得事件的目标名称:如果ev.target。
例如,在http请求的情况下,它返回“XMLHttpRequest”。