我有以下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()函数不起作用。