我有以下循环:

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/

10-11 12:53