我正在尝试使用jquery在div内获取文本内容。但它返回“未定义”。请有人告诉我我在这里做错了。这是我的代码。
<a><div class="exc_text">Some text here</div></a>
$(document).on('click','.exc_text',function(){
var text = $(this).textContent;
console.log(text);
});
答案 0 :(得分:3)
textContent
是本机元素的属性,而不是jQuery对象的属性。 $(this)
将this
(是本机DOM元素)包装在jQuery对象中。
要么坚持使用本机DOM api(然后使用textContent
),这就是我的建议:
document.addEventListener('click', (e) => {
if (e.target.classList.contains('exc_text') {
console.log(e.target.textContent);
}
})
或必须使用jQuery(并使用.text()
):
$(document).on('click', '.exc_text', function(){
var text = $(this).text();
console.log(text);
});
答案 1 :(得分:0)
您正在使用jQuery重新选择不需要的元素。试试这个
$(document).on('click','.exc_text',function(){
var text = this.textContent;
console.log(text);
});
解决此问题的最简单方法是查看开发工具。我所做的只是在第二个链接上断开,并将鼠标悬停在该链接上,这向我表明这是一个元素,因此无需重新选择它...
答案 2 :(得分:0)
您应该使用.text()
而不是.textContent
<a><div class="exc_text">Some text here</div></a>
$(document).on('click','.exc_text',function(){
var text = $(this).text();
console.log(text);
});
答案 3 :(得分:0)
只需使用.text()
<a><div class="exc_text">Some text here</div></a>
$(document).on('click','.exc_text', function(){
var text = $(this).text();
console.log(text);
});