获取jquery数组中元素的文本

时间:2016-04-13 12:13:50

标签: javascript jquery

我可以这样做:

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;
&#13;
&#13;

3 个答案:

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

这将只针对第一个类型