【问题标题】:Get value of element on which the event fired [duplicate]获取触发事件的元素的值[重复]
【发布时间】:2012-05-02 20:54:59
【问题描述】:

可能重复:
Select inner text (jQuery)

我有一个跨度:

<span class="test"> target_string </span>

还有一个事件,在点击页面的任何元素时触发。

$('body').click(function(event){
  if ($(event.target).attr('class') == 'test'){
    alert(???);
  }
}

如何获取 target_string 的值?

【问题讨论】:

    标签: javascript jquery html


    【解决方案1】:

    使用$(event.target).text() 获取文本。

    【讨论】:

    • @zerkms 因为$(this) 会引用正文。
    • @zerkms:事件绑定到'body'this 将是 'body',而不是单击的元素。
    • @zerkms $(this) 指的是被点击的 body 元素,而不是 event.target。
    • 谢谢,正是我需要的。
    • 谢谢 - 我需要使用 val() 而不是 text(),但这引导我走向正确的方向
    【解决方案2】:

    从主体委派可能更有效:

    $('body').on('click', '.test', function(event){
        alert($(this).text())
    });
    

    【讨论】:

    • 感谢您的回答,这可能会有所帮助。
    【解决方案3】:

    试试下面,

    $('body').click(function(event){
      var $targ = $(event.target);
      if ($targ.hasClass('test')){
        alert($targ.text());
      }
    }
    

    【讨论】:

      【解决方案4】:

      不确定您是否打算在该事件处理程序中使用除具有测试类的元素之外的其他元素,但这可能更简洁:

      $('.test').click(function(event){
          alert($(this).text());
      });
      

      【讨论】:

        猜你喜欢
        • 2010-09-08
        • 2012-08-16
        • 1970-01-01
        • 2018-11-20
        • 2011-08-29
        • 1970-01-01
        • 1970-01-01
        • 2023-01-05
        • 1970-01-01
        相关资源
        最近更新 更多