我有以下循环:
for(var myScreen in wizardScreens){
if(step==index)$(myScreen).show();
else $(myScreen).hide();
index++;
}
wizardScreens
定义为 $(".wizardScreen", wizard);
,其中 wizard
是一个 DOM 元素。在循环中,myScreen
被设置为一个字符串,而不是一个 DOM 元素。谁能解释为什么会这样? 最佳答案
jQuery 集合已经有一个内置的迭代函数:
wizardscreens.each(function (index, screen) {
if (index == step)
$(screen).show();
else
$(screen).hide();
}
或者甚至更适合您的使用:
var activescreen = wizardscreens.eq(step);
activescreen.show();
wizardscreens.not( activescreen[0] ).hide();
这完全避免了显式迭代。
关于javascript - 迭代 jquery 对象返回字符串而不是 dom 元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3562984/