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

How do I iterate over object literal array with jquery $.each() method?

本文关键字:迭代 方法 对象 文本 数组 何使用 jquery each      更新时间:2023-09-26

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

在chrome调试器中,它返回为"undefined, undefined"。

任何帮助都将非常感激。谢谢!

    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);
            }                   
        );
    }

尝试:

   $.each(
        obj,
        function(i, val){
            console.log(val.className + ', ' + val.url);
        }                   
    );

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

查看API以获得更多的解释和示例。

你可以看到这个提琴,看看它的作用

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

原答案(以上):

$.each(
  obj,
  function(i, val){
    console.log(val.className + ', ' + val.url);
  }                   
);

此解决方案有效,但它为对象中的每个属性生成一个全新的迭代器函数实例。没有必要这样做,我认为通过声明特定的方法来处理这类事情,您将在大型应用程序中找到更稳定的性能。

试试这个:

// 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加载的大记录集,它肯定会有所不同。

干杯!

我会试试这个:美元。每个([52,97],函数(索引,值){Alert (index + ': ' + value);});

第一个属性是索引

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