Javascript 如何使用jquery获取数字元素的文本并放入数组?
我尝试获取数字元素的文本,并使用jquery将其放入数组中。但出现以下错误: 未捕获类型错误:aTags[i]。父项不是函数 如何解决这个问题Javascript 如何使用jquery获取数字元素的文本并放入数组?,javascript,jquery,Javascript,Jquery,我尝试获取数字元素的文本,并使用jquery将其放入数组中。但出现以下错误: 未捕获类型错误:aTags[i]。父项不是函数 如何解决这个问题 $('#flight-stops-filter ul li a').click(function() { var aTags=$('#flight-stops-filter ul li a'); stops = []; for (var i = 0; i < aTags.length; i++) {
$('#flight-stops-filter ul li a').click(function() {
var aTags=$('#flight-stops-filter ul li a');
stops = [];
for (var i = 0; i < aTags.length; i++) {
if (aTags[i].parent("li").hasClass('active')) {
alert(this.text);
stops.push(this.text.substr(0, 1));
}
}
});
$(“#航班停靠过滤器ul li a”)。单击(函数(){
var aTags=$(“#航班停靠过滤器ul li a”);
停止=[];
对于(变量i=0;i
aTags
是Jquery对象,其中包含纯DOM对象。因此,如果不将纯DOM对象包装到jquery中,就无法在纯DOM对象上调用jquery方法
将for循环替换为
aTags.each(function(){
if( $(this).parent("li").hasClass('active'))
{
alert(this.text);
stops.push(this.text.substr(0, 1));
}
});
正如中所建议的,您需要通过jquery的eq
方法来访问它,而不是通过括号符号来访问它
aTags.eq( 0 );//for first DOM object wrapped inside a jquery object
用于访问DOM对象
aTags.get(0) ;//same as aTags[0];
aTags
是包含纯DOM对象的Jquery对象。因此,如果不将纯DOM对象包装到jquery中,就无法在纯DOM对象上调用jquery方法
将for循环替换为
aTags.each(function(){
if( $(this).parent("li").hasClass('active'))
{
alert(this.text);
stops.push(this.text.substr(0, 1));
}
});
正如中所建议的,您需要通过jquery的eq
方法来访问它,而不是通过括号符号来访问它
aTags.eq( 0 );//for first DOM object wrapped inside a jquery object
用于访问DOM对象
aTags.get(0) ;//same as aTags[0];
使用括号表示法时
aTags[i].parent("li")
它返回一个DOM节点
您想使用eq(索引)
现在在循环内部使用this.text也可能是错误的,因为DOM中没有text
属性
所以你可能想要的是
$('#flight-stops-filter ul li a').click(function() {
var aTags=$('#flight-stops-filter ul li a');
stops = [];
for (var i = 0; i < aTags.length; i++) {
var li = aTags.eq(i).parent("li");
if (li.hasClass('active')) {
console.log(li.text());
stops.push(li.text().substr(0, 1));
}
}
});
$(“#航班停靠过滤器ul li a”)。单击(函数(){
var aTags=$(“#航班停靠过滤器ul li a”);
停止=[];
对于(变量i=0;i
使用括号表示法时
aTags[i].parent("li")
它返回一个DOM节点
您想使用eq(索引)
现在在循环内部使用this.text也可能是错误的,因为DOM中没有text
属性
所以你可能想要的是
$('#flight-stops-filter ul li a').click(function() {
var aTags=$('#flight-stops-filter ul li a');
stops = [];
for (var i = 0; i < aTags.length; i++) {
var li = aTags.eq(i).parent("li");
if (li.hasClass('active')) {
console.log(li.text());
stops.push(li.text().substr(0, 1));
}
}
});
$(“#航班停靠过滤器ul li a”)。单击(函数(){
var aTags=$(“#航班停靠过滤器ul li a”);
停止=[];
对于(变量i=0;i
将变量包装在jQuery对象中(将aTags[i]更改为$(aTags[i])。parent
:
或:
将变量包装在jQuery对象中(将aTags[i].parent
更改为$(aTags[i])。parent
:
或:
其他人已经很好地解释了错误的原因。这一备选方案是直截了当的,您不可能遇到这样的错误:
var links = $('#flight-stops-filter ul li a');
links.click(function() {
stops = links.parent('.active').find('a').map(function() {
return $(this).text().substr(0,1);
}).get();
});
其他人已经很好地解释了错误的原因。这一备选方案是直截了当的,您不可能遇到这样的错误:
var links = $('#flight-stops-filter ul li a');
links.click(function() {
stops = links.parent('.active').find('a').map(function() {
return $(this).text().substr(0,1);
}).get();
});
aTags[i]
是DOM元素用jquery包装器包装它。而不是aTags[i]。父(..
使用$(aTags[i])。父(..
它看起来像DOM
不是jQ
包装的元素$(这个)
aTags[i]
是DOM元素用jquery包装器包装它。而不是aTags[i]。父(..
使用$(aTags[i])。父(..
它看起来像DOM
不是jQ
包装的元素;
然后在循环中,$(此)
如果你引用元素以正确的方式开始,那么包装它就没有意义如果你引用元素以正确的方式开始,那么包装它就没有意义如果他有多个选择会发生什么?@madalinivascu没有理解你…你能详细说明多个选择吗
?如果他有多个选择会发生什么?@madalinivascu没有让您……您能详细说明多个选项吗?