首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用jquery $.each()方法迭代对象文字数组?

如何使用jquery $.each()方法迭代对象文字数组?
EN

Stack Overflow用户
提问于 2011-08-07 10:18:29
回答 3查看 2.5K关注 0票数 2

如何使用jquery $.each()方法迭代对象文字数组?

在chrome调试器中,它返回为“未定义的,未定义的”。

任何帮助都将不胜感激。谢谢!

代码语言:javascript
复制
    var links = [ 
                    { className : 'hover', url : 'http://www.yahoo.com' },
                    { className : 'hover-2', url : 'http://www.foxnews.com' },
                ];


    loopy(links)


    function loopy(obj){

        $.each(

            obj,

            function(){

                console.log(obj.className + ', ' + obj.url);

            }                   

        );
    }
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-08-07 10:19:48

尝试:

代码语言:javascript
复制
   $.each(
        obj,
        function(i, val){
            console.log(val.className + ', ' + val.url);
        }                   
    );

$.each函数参数有两个参数--数组中当前项的索引,第二个是数组的实际当前值。

有关更多解释和示例,请参阅API

您可以查看此fiddle以查看它的实际操作。

票数 6
EN

Stack Overflow用户

发布于 2015-04-01 01:32:25

我只是想提供一个稍微修改过的David响应版本,在处理较大的对象时,DOM会更温和一些。

原始答案(上图):

代码语言:javascript
复制
$.each(
  obj,
  function(i, val){
    console.log(val.className + ', ' + val.url);
  }                   
);

此解决方案可以工作,但它会为对象中的每个属性生成一个全新的迭代器函数实例。不需要这样做,我认为通过声明特定的方法来处理这类事情,您会发现在较大的应用程序中性能更稳定。

试试这个:

代码语言:javascript
复制
// Process a property in your link object
function links_iterationHandler(i, val) {
   console.log(val.className + ', ' + val.url);
}

// Traverse the link object and pass each result off to the method above
$.each(obj, links_iterationHandler);

这基本上做了同样的事情,但不会对DOM产生太大的影响。如果你的对象中只有几个项目,那也没什么大不了的。但是,如果您正在处理大量数据,比如通过Ajax加载的大型记录集,这肯定会有所不同。

干杯!

票数 1
EN

Stack Overflow用户

发布于 2011-08-07 10:20:29

我试一下:$.each(52,97,function(index,value) { alert(index + ':‘+ value);});

第一个属性是索引。

http://api.jquery.com/jQuery.each/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6970300

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档