Jquery 从函数内部获取匹配的选择器文本

发布于 2024-09-16 12:39:38 字数 361 浏览 7 评论 0原文

有没有办法从函数内获取调用某个函数(如果存在)的选择器的文本?

例如

$('#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/),但当我进入该函数时能够知道哪一个是匹配的。

Is there any way to get the text of the selector that invoked some function (if it exists) from within the function?

For example

$('#foo, .bar').click(function() {

   // Here I want to figure out if there was a match on #foo, or .bar

});

Basically I want to have a compounded selector like the one above (http://api.jquery.com/multiple-selector/) but be able to know which one was matched when I get inside the function.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

红玫瑰 2024-09-23 12:39:38

您可以使用事件对象获取该信息。

$('#foo, .bar').click(function(event) {

   if(event.target.id === 'foo'){
      alert('foo');
   }
   else if(event.target.className === 'bar'){
      alert('bar');
   }

});

示例:http://www.jsfiddle.net/8CACU/

参考:http://api.jquery.com/event.target/

You can get that info with the event object.

$('#foo, .bar').click(function(event) {

   if(event.target.id === 'foo'){
      alert('foo');
   }
   else if(event.target.className === 'bar'){
      alert('bar');
   }

});

Example: http://www.jsfiddle.net/8CACU/

Ref.: http://api.jquery.com/event.target/

无声静候 2024-09-23 12:39:38

您可以在回调中使用 $(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/

You can use $(this) inside the callback to get the actual element and access the attribute of the element that is used in the selector.

$('#foo, .bar').click(function() { 
    if($(this).attr('id') == 'foo')  {
        alert('foo handled');
    } else if($(this).hasClass('bar')) {
        alert('bar handled');
    }
});

jsfiddle sample: http://jsfiddle.net/us8r9/

戈亓 2024-09-23 12:39:38
$('#foo, .bar').click(GOTEMM(event) {

   if(event.target.id === 'foo'){
      alert('foo');
   }
   elseif(event.target.className === 'bar'){
      alert('bar');
   }

});
$('#foo, .bar').click(GOTEMM(event) {

   if(event.target.id === 'foo'){
      alert('foo');
   }
   elseif(event.target.className === 'bar'){
      alert('bar');
   }

});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文