【问题标题】:How to get the text/html value from event.target using jQuery [duplicate]如何使用 jQuery 从 event.target 获取 text/html 值 [重复]
【发布时间】:2016-06-18 01:40:40
【问题描述】:

我正在使用 Clipboard.js 并尝试使用以下命令获取 <td> 节点中的文本:

$('.clipboard').click(function(evt) {
    clipboard.copy(evt.target.val()).then(
      function(){console.log("success");},
      function(err){console.log("failure", err);}
    );
});

显然.val() 不是evt.target 上的有效方法。在这里使用evt 获取节点文本值的正确方法是什么?

【问题讨论】:

  • $()把它包起来

标签: javascript jquery


【解决方案1】:
evt.target.innerText

这将为您提供文本值,innerHtml 将为您提供全部内容

【讨论】:

    【解决方案2】:

    应该是

    $(evt.target).text()
    

    【讨论】:

      【解决方案3】:

      $('.clipboard').click(function(evt) { }); 中,您可以使用“this”关键字。

      如果您运行console.log( $(this) ),您将拥有被点击的元素。在这种情况下,它将是 .clipboard 元素。

      然后使用文本值:console.log( $(this).text() );

      $('.clipboard').click(function(evt) {
      
          var clicked_element_text = $(this).text();
      
          clipboard.copy(clicked_element_text).then(
      
              // Do something with clicked_element_text 
      
              function(){console.log("success");},
              function(err){console.log("failure", err);}
          );
      });
      

      【讨论】:

        【解决方案4】:

        您正在混合纯 JavaScript 和 jQuery。在您的回调中,evt 是一个事件对象。 evt.target 是一个 DOM 元素。

        要使用 jQuery-Method,您需要通过将其包装在 $() 中来创建一个 jQuery-Object。

        所以它应该变成:$(evt.target).text()$(evt.target).html(),这取决于您需要纯文本还是需要 inside-html。

        $('.clipboard').click(function(evt) {
            var $target = $(evt.target);
            clipboard.copy($target.text()).then(
              function(){console.log("success");},
              function(err){console.log("failure", err);}
            );
        });
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-06-07
          • 2019-02-28
          • 2011-11-22
          • 1970-01-01
          • 2015-08-17
          • 2020-02-13
          相关资源
          最近更新 更多