如何在jQuery中保存由数组样式选择的元素的值?

如何在jQuery中保存由数组样式选择的元素的值?,jquery,Jquery,假设我们有以下几点: <p class="first">This is paragraph 1.</p> <p class="second">This is paragraph 2.</p> <p id="third">This is paragraph 3.</p> <p>This is paragraph 4.</p> 如果我们知道元素的数量,上面的方法没有问题,但是如果我们有很多元素,并且

假设我们有以下几点:

<p class="first">This is paragraph 1.</p> 
<p class="second">This is paragraph 2.</p> 
<p id="third">This is paragraph 3.</p>
<p>This is paragraph 4.</p>
如果我们知道元素的数量,上面的方法没有问题,但是如果我们有很多元素,并且我们想做循环,我们就会遇到问题。如果我这样做,为什么会出错

$('p')[3].text();
如果我想循环并获取值,我应该怎么做?

像这样循环:

$('p').each(function(i) {
  alert($(this).text());
  //or this:
  alert($('p').eq(i).text());
});
$('p.eq(3)')

// OR

$('p').eq(3)
当您执行
[3]
时,您得到的是DOM元素
而不是jQuery对象,它具有
.text()
方法

$('p')[3] == DOM Element, doesn't have `.text()`
$('p').eq(3) == jQuery object, has `.text()`
循环如下:

$('p').each(function(i) {
  alert($(this).text());
  //or this:
  alert($('p').eq(i).text());
});
$('p.eq(3)')

// OR

$('p').eq(3)
当您执行
[3]
时,您得到的是DOM元素
而不是jQuery对象,它具有
.text()
方法

$('p')[3] == DOM Element, doesn't have `.text()`
$('p').eq(3) == jQuery object, has `.text()`

jQuery对象可以用作DOM元素的数组,而不是其他jQuery对象。
因此,编写
$(…)[3]
将为您提供一个原始DOM元素,而不是jQuery对象

您需要调用以下函数:

$('p').eq(3).text();

jQuery对象可以用作DOM元素的数组,而不是其他jQuery对象。
因此,编写
$(…)[3]
将为您提供一个原始DOM元素,而不是jQuery对象

您需要调用以下函数:

$('p').eq(3).text();

您尝试执行的问题是,
$('p')[3]
不会返回jQuery对象,因此它没有
text()
函数

相反,请使用以下内容:

$('p').each(function(i) {
  alert($(this).text());
  //or this:
  alert($('p').eq(i).text());
});
$('p.eq(3)')

// OR

$('p').eq(3)

一般的经验法则是,如果您不确定某个对象是否有任何jQuery方法,您可能只需要将其包装在
$(…)
jQuery(…)
中即可,如果您使用
jQuery.noConflict(),后者会被更多地使用
(因此使用Prototype或其他使用
$
作为变量的库)。

您尝试执行的问题是
$('p')[3]
不会返回jQuery对象,因此它没有
text()
函数

相反,请使用以下内容:

$('p').each(function(i) {
  alert($(this).text());
  //or this:
  alert($('p').eq(i).text());
});
$('p.eq(3)')

// OR

$('p').eq(3)

一般的经验法则是,如果您不确定某个对象是否有任何jQuery方法,您可能只需要将其包装在
$(…)
jQuery(…)
中即可,如果您使用
jQuery.noConflict(),后者会被更多地使用
(因此使用Prototype或其他使用
$
作为变量的库)。

错误的原因是使用数组表示法获取实际DOM元素时获取了它。DOM元素没有text()函数。要获取所有值,请使用每个值

var values = [];
$('p').each( function(i) {
    values[i] = $(this).text();
}
要获取特定元素,请使用eq()


错误的原因是,当您使用数组表示法获取实际的DOM元素时,会获取该元素。DOM元素没有text()函数。要获取所有值,请使用每个值

var values = [];
$('p').each( function(i) {
    values[i] = $(this).text();
}
要获取特定元素,请使用eq()