如何在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()