javascript - 使用 for..in 循环对象

标签 javascript jquery

我尝试使用 for..in 循环来选择变量中的对象,但它没有显示必要的 Li 对象。

var mUlLi = $(mUl).find('>li');      //select all li's in main Ul   
var listLength = $(mUlLi).length;
if(listLength >0 ){
    /*for(i=0;i <listLength; i++) {
        console.log(mUlLi[i]);   // works fine show the li objects  
    }*/
    for(var obj in mUlLi) {
        console.log(obj);   // show's diff objects
    }
}

我该如何解决这个问题?

最佳答案

jQuery 有一个 each()做同样的事情。

$(mUl).find('>li').each(function(){ //for each of the elements found
    console.log(this);              //in here, "this" is the DOM element <li>
});

如果您在 jQuery 对象上使用 for in,您还会循环遍历 jQuery 方法和属性。

但是,如果您确实想对从 jQuery 获取的元素执行 for 循环(因为您不想使用 each()),然后直接执行:

var nodes = $(mUl).find('>li'),
    nodesLength = nodes.length,
    i, node;

for(i=0,i<nodesLength;i++){
    node = nodes[i];
}

关于javascript - 使用 for..in 循环对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10546213/

相关文章:

javascript - 使用 Ajax 和 JSON 时设置 cookie

javascript - 在没有元素的情况下使用 jquery ui 显示模式对话框?

javascript - 使用屏幕分辨率更改 HREF 中的 URL 作为测试

javascript - 如何从 ul li 触发 onblur?

Jquery flash/用 css 改变边框颜色

jQuery 隐藏个人通知

javascript - 使用 jQuery,如何获取 URL 的文件部分?

javascript - 在 jquery easy ticker 元素 IE8、IE9、IE10、IE11 内的侧边栏中剪切的文本

jquery - 使用jquery使图像转 Angular

javascript - 输入框中的标记不应为零