如何使用jQuery从event.target获取text / html值

时间:2016-06-17 17:34:01

标签: javascript jquery

我正在使用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获取节点文本值的正确方法是什么?

4 个答案:

答案 0 :(得分:10)

evt.target.innerText

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

答案 1 :(得分:4)

应该是

$(evt.target).text()

答案 2 :(得分:0)

$('.clipboard').click(function(evt) { });内,您可以使用&#34;此&#34;关键字。

如果你运行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);}
    );
});

答案 3 :(得分:0)

您正在混合纯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);}
    );
});