使用javascript获取元素内的文本

时间:2018-11-05 01:01:07

标签: javascript jquery html text element

我正在尝试使用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);
});

4 个答案:

答案 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);
});