有没有办法从函数中获取调用某些函数(如果存在)的选择器的文本?
例如
$('#foo, .bar').click(function() {
// Here I want to figure out if there was a match on #foo, or .bar
});
基本上我想要一个像上面那样的复合选择器(http://api.jquery.com/multiple-selector/),但是当我进入函数时能够知道哪一个匹配。
答案 0 :(得分:2)
您可以使用event object
获取该信息。
$('#foo, .bar').click(function(event) {
if(event.target.id === 'foo'){
alert('foo');
}
else if(event.target.className === 'bar'){
alert('bar');
}
});
答案 1 :(得分:0)
$('#foo, .bar').click(GOTEMM(event) {
if(event.target.id === 'foo'){
alert('foo');
}
elseif(event.target.className === 'bar'){
alert('bar');
}
});
答案 2 :(得分:0)
您可以在回调中使用$(this)来获取实际元素并访问选择器中使用的元素的属性。
$('#foo, .bar').click(function() {
if($(this).attr('id') == 'foo') {
alert('foo handled');
} else if($(this).hasClass('bar')) {
alert('bar handled');
}
});
jsfiddle示例:http://jsfiddle.net/us8r9/