【问题标题】:Use jQuery to get text of target使用 jQuery 获取目标文本
【发布时间】:2013-02-06 02:53:31
【问题描述】:

试图从无序列表中获取事件目标元素的文本

<ul>
  <li>Item 1</li>
  <li>Item 2</li>
  <li>Item 3</li>
</ul>

这样的代码

$('ul').click(function() {
theEl=(event.target.text);
});

当我控制台日志时

event.target

它返回

 <li>Item 1</li>

event.target.text

返回未定义

我只想要“第 1 项”。我知道我以前做过 - 一定是晚了...感谢您的帮助:)

【问题讨论】:

    标签: jquery events target


    【解决方案1】:

    使用jQuery的文本函数:

    $(event.target).text()
    

    【讨论】:

      【解决方案2】:

      您混淆了原始 JS 和 jQuery。

      在 jQuery 中,您将使用 $(event.target).text()

      但是,它在 JavaScript 中效率更高:event.target.firstChild.nodeValue

      编辑:这是JSPerf 作为证据。

      【讨论】:

      • 好的 JSPerf - 在 JS 中速度更快!将 Jeff 标记为正确答案 b/c 他是第一个回答的,但感谢您提供的详细信息。
      【解决方案3】:

      event.target.text 未定义的原因是因为 HTMLElement 没有定义该方法或属性。但是,jQuery 确实有 text(),这正是您要找的。为了访问 jQuery 方法或属性,您需要将当前 HTMLElement 包装在一个 jquery 对象中。这是通过将它传递给 jQuery 来完成的,然后 jQuery 用它创建一个函数对象,以及暴露 API 的 jQuery 原型。

      jQuery(element);//in general
      $(event.target).text();//for your situation
      

      【讨论】:

        【解决方案4】:
        event.target.textContent
        

        它也是 javascript 访问。我建议您使用Ctrl+Shift+J 执行“Chrome”(或 Firefox)javascript 控制台。写下您的代码:console.log(event) 并在控制台上留意。您可以查看对象的每个属性。

        【讨论】:

          【解决方案5】:

          试试这个 -> event.target.innerText

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-12-01
            • 1970-01-01
            • 1970-01-01
            • 2021-08-06
            • 1970-01-01
            • 2019-07-18
            相关资源
            最近更新 更多