在Chrome的开发者控制台中。我正在尝试从网站上获取一段文字。
示例:
<div class="someClass">This is some text!</div>
我希望它能正常工作,但是它返回“ undefined”
$('.someClass')[0].text
但当文本位于具有相同类的标记内时,此方法仍然有效。当文本仅位于div内时,会发生什么特殊情况吗?谢谢!
答案 0 :(得分:1)
此$('.someClass')[0]
返回DOM元素而不是jQuery对象。
因此,您可以使用的是$('.someClass')[0].textContent
答案 1 :(得分:1)
您遇到的问题是您正在使用方括号来引用第一个元素。使用jQuery,returns the DOM node和DOM没有text属性。
您需要使用.eq(0)来引用jQuery,这是一种方法,因此需要括号。
console.log($('.someClass').eq(0).text())
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="someClass">This is some text!</div>
答案 2 :(得分:0)
此:
$('.someClass')
...返回jQuery选择。您可以通过以下方式获取文字:
$('.someClass').text()
但是,如果有多个.someClass
,您将获得所有这些项目的文本。这可能就是为什么您拥有
$('.someClass')[0]
...但是这不再是jQuery选择,而是一个DOM元素,既没有.text()
方法也没有.text
属性。有一个innerText
或textContent
属性,它们都不具有广泛的浏览器支持,所以也许您最好这样做:
$('.someClass').first().text()