为什么这段代码无法运行

var a=$('#search').find('*');
    var listx=[];
    console.log(listx);
    for (i in a){
        window.listx.push($(a[i]).css('display'));
        $(a[i]).css('display','none');
    }
    console.log(listx);
    for (i in a) {
        $(a[i]).fadeIn("slow",function(){$(a[i]).css('display',window.listx[i])});
    }

第一个循环能完整执行,循环结束就未知原因停止了

已找到问题所在
$().find()函数返回的是一个dict,除了元素之外还有一大堆的参数
加一个if (!(isNaN(i))){daima}即可

阅读 2.4k
3 个回答

第一个循环能完整执行,循环结束就未知原因停止了

已找到问题所在
$().find()函数返回的是一个dict,除了元素之外还有一大堆的参数
加一个if (!(isNaN(i))){daima}即可

find出来的就是jq对象了,不使用$包装尝试下,然后分段调试是否捕捉到search里面的元素

问题在于你不应该用for in 遍历数组

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题