在jQuery中检查未定义的变量,其中部分名称是变量

时间:2018-05-29 15:08:19

标签: javascript jquery

我有以下jQuery代码段,它将六个选择元素的'selectedIndex'属性设置为'0'。

for (m = 1; m <= 6; m++)                                    {
        $("#po"+eval("leafWId"+m)).prop("selectedIndex", 0);
    }

在代码段中,定义了以下变量:  leafWId1,leafWId2,leafWId3,leafWId4,其中每一个都设置为不同的数字,所以部分

eval("leafWId"+m) 
每次迭代中的

等同于

eval("leafWId1"), eval("leafWId2"), eval("leafWId3")........

因此,评估上面提到的每个数字和片段

$("#po"+eval("leafWId"+m))

返回一个jQuery对象,该对象由id值为“po345”的select元素组成。

现在,当'm'变量通过迭代设置为值'5'时,我得到一个未捕获的参考错误,报告“leafWId5未定义”(正如预期的那样,因为只定义了四个变量,即leafWId1,leafWId2,leafWId3,leafWId4如上所述。

我想添加一个条件语句,用于检查名称将是评估结果的未定义变量

eval("leafWId"+m)

如果定义了,那么使用prop()方法,如果没有,跳过这个,所以我没有得到参考错误。

或者作为替代方案,可以检查下面的jQuery对象的长度

$("#po"+eval("leafWId"+m))

并且只有当它的长度大于零时才继续使用prop()方法。

实际上,我遇到的问题是当m变量设置为'5'时,部分

  eval("leafWId"+m)

计算为'leafWId5',一个未定义的变量,并且该片段不允许我提前检查'undefined'值,因为eval()函数给出了一个错误,所以任何条件语句我都用过检查现有变量并使用eval()函数不起作用。

0 个答案:

没有答案