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