【问题标题】:Get information of element that called function with jQuery获取使用 jQuery 调用函数的元素的信息
【发布时间】:2011-11-25 04:57:35
【问题描述】:

我想知道如何使用 jQuery 查找调用 onClick 方法的元素 id?我的代码是:

JS

function getInfo(event)
{
    console.log(event.target.id + " ... ");
}

HTML

<div class="menu-content" id="thisismyid">
    This is some placeholder text.<br>
    <a onClick="getInfo()" id="thisisthelinksid">Click on me</a>
</div>

<div class="menu-content" id="thisismysecondid">
    This is some more placeholder text.<br>
    <a onClick="getInfo()" id="thisistheotherlinksid">Click on me</a>
</div>

我不能在函数的括号内放任何东西,因为我想稍后将一个函数传递给它,我只想知道是哪个函数调用了这个函数。

我知道这个问题已经被问过很多次了,很多问题都有答案,但我已经阅读了很多,但没有一个对我有帮助。

谢谢大家

-编辑-

关于本次编辑时的以下答案,我无法使用 jQuery 方法,例如:

$("div.menu-content a").click(function() {
    some content here..
});

因为我需要它只在某些被点击的链接上运行,而不是全部。这有助于澄清吗?

【问题讨论】:

    标签: jquery function tags


    【解决方案1】:
    $("div.menu-content a").click(function() {
        var $elemId = $(this).attr("id");
        console.log($elemId + " .... ");
    );
    

    这是一个更“jQuery 风格”的解决方案。

    【讨论】:

    • 谢谢,我会使用它,但我的代码将用于显示手风琴风格的 div。但是,我不希望它在所有 &lt;a&gt; 标签上运行,只需选择一个,因此使用 onClick 方法。有什么解决办法吗?
    • 看看 $("div.menu-content a"),它是一个选择器 (api.jquery.com/category/selectors),它只选择具有 menu-content 类的 div 上的链接。我们在他身上应用了一个点击监听器。我建议你阅读一些 jquery 教程;)
    【解决方案2】:

    试试:

    function getInfo(event)
    {
        var id = $(event.target).attr('id');
        console.log(id);
    }
    

    【讨论】:

    • 这不起作用。除非onclick 属性是getInfo(event)(OP 说他不能将其更改为),否则event 将在此处未定义,就像在他的代码中一样。
    【解决方案3】:

    不要使用onclick 属性,而是使用事件处理程序。

    $(function(){
       $('a', 'div.menu-content').click(function(){
          console.log(this.id+'...');
       });
    }):
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-08-15
      • 1970-01-01
      • 2012-07-05
      • 2012-03-03
      • 1970-01-01
      • 2012-12-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多