Javascript 每个()函数在JQuery中跳过,对数组不做任何操作
我写这段代码是为了迭代Reshte数组的每个元素,但它跳过了所有元素,并且它的内容从未运行过Javascript 每个()函数在JQuery中跳过,对数组不做任何操作,javascript,jquery,arrays,foreach,each,Javascript,Jquery,Arrays,Foreach,Each,我写这段代码是为了迭代Reshte数组的每个元素,但它跳过了所有元素,并且它的内容从未运行过 Reshte = $('.seeker_register select[name="Reshte[]"]').toArray(); Gerayesh = $('.seeker_register select[name="Gerayesh[]"]').toArray(); Moadel = $('.seeker_register select[name="Moadel[]"]').toArray();
Reshte = $('.seeker_register select[name="Reshte[]"]').toArray();
Gerayesh = $('.seeker_register select[name="Gerayesh[]"]').toArray();
Moadel = $('.seeker_register select[name="Moadel[]"]').toArray();
// Reshte.each(function(index, el) {
Reshte.each(function(index, el) {
if ($(Reshte[index].val() )){
review_page += 'Diplom: '+
$(Reshte[index]).val()+ ' '+
$(Gerayesh[index]).val()+ ' Moadel:'+
$(Moadel[index]).val();
};
});
Reshte数组不是空的。就是这样:
Reshte =
Array [ <select#Reshte.form-control>, <select#Reshte.form-control>, <select#Reshte.form-control>, <select#Reshte.form-control>, <select#Reshte.form-control> ]
Reshte=
数组[,,]
在Javascript中,您可以将用于
for (var i = 0; i < Reshte; i++) {
//alert(Reshte[i]);
//Do something
}
如果在代码中使用:Reshte.each
未捕获类型错误:未定义不是函数
您不需要将它们作为数组来存储,jQuery为您提供了一个很好的each()
方法来循环它们,以及一个eq()
方法来通过数组索引访问它们each()
在数组中不存在,它之所以有效,是因为它继承了jQuery自己的each方法
您的if
条件$(Reshte[index].val())
中也有一个bugReshte[index]
不会将val()
作为本机domeElement。即使它这样做了,当元素是您想要传递的并调用val()
时,也会将值传递给$()
Reshte = $('.seeker_register select[name="Reshte[]"]');
Gerayesh = $('.seeker_register select[name="Gerayesh[]"]');
Moadel = $('.seeker_register select[name="Moadel[]"]');
Reshte.each(function(index) {
if ($(this).val()){ // bug fix here
review_page += 'Diplom: '+
$(this).val() + ' '+
Gerayesh.eq(index).val() + ' Moadel:'+
Moadel.eq(index).val();
};
});
您不需要调用toArray()
,因为。each()
是一个jQuery方法,应该在jQuery对象上调用它。JS数组不是jQuery对象
因此,只需删除它就可以了。尝试$(this).va()
而不是Reshte[index].val()
JS数组没有each()
方法。它们确实有一个forEach()
方法。或者jQuery对象具有each()
方法,但Reshte
不是jQuery对象。检查浏览器的开发人员控制台是否有错误如何?数组没有。each()
方法,但是jQuery对象(由$()
返回)有。each()
。所以如果你调用.toArray()
你就不能使用.each()
但是如果你不调用.toArray()
你可以使用.each()
。非常感谢。问题是if语句中的parentes错误。正如您所说,数组不是必需的,但是每个()方法都可以使用它。
Reshte = $('.seeker_register select[name="Reshte[]"]');
Gerayesh = $('.seeker_register select[name="Gerayesh[]"]');
Moadel = $('.seeker_register select[name="Moadel[]"]');
Reshte.each(function(index) {
if ($(this).val()){ // bug fix here
review_page += 'Diplom: '+
$(this).val() + ' '+
Gerayesh.eq(index).val() + ' Moadel:'+
Moadel.eq(index).val();
};
});