我可以这样做:
console.log($('.container .content').text());
但我做不到这样的事情:
console.log($('.container .content')[0].text());
我遇到了一个TypeError:$(...)[0].text is not a function
。为什么会这样?如何获取所选jquery数组中第一个元素的文本?
console.log($('.container .content').text());

<div class="container">
<p class="content">
Contents
</p>
</div>
<div class="container">
<p class="content">
Contents
</p>
</div>
&#13;
答案 0 :(得分:3)
$('.container .content')[0]
返回一个DOM对象,你不能使用.text()
之类的jQuery方法。
而是使用console.log($('.container .content').eq(0).text());
OR
console.log($($('.container .content')[0]).text());// wrap jQuery wrapper and then use jQuery method `.text()`
OR(使用jQuery .first()
)。
console.log($('.container .content').first().text());
答案 1 :(得分:1)
试试这个:你正在使用索引[0]
到jquery对象,该对象返回javascript对象,然后调用.text()
,这将无效,因为这是一个jquery方法,而不是javascript方法。
如果你的目标是拥有第一个匹配元素的文字,你可以使用:first
,如下所示
console.log($('.container .content:first').text());
或用户:eq()
用于所需的索引对象
console.log($('.container .content:eq(0)').text());
演示:
alert($('.container .content:first').text());
alert($('.container .content').first().text());
alert($('.container .content:eq(0)').text());
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
<p class="content">
Contents1
</p>
</div>
<div class="container">
<p class="content">
Contents2
</p>
</div>
答案 2 :(得分:0)
console.log($('.container .content').first().text());
这将只针对第一个类型