Javascript 每个()函数在JQuery中跳过,对数组不做任何操作

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数组的每个元素,但它跳过了所有元素,并且它的内容从未运行过

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())
中也有一个bug
Reshte[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();
    };
});