对象的jQuery递归迭代

前端之家收集整理的这篇文章主要介绍了对象的jQuery递归迭代前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有一天我想我在jQuery中看到一个对象迭代器,它有一个可以设置为递归迭代子对象的标志。我认为这是jQuery.each()的一部分,但现在我没有看到在文档中的能力。

有没有任何这样的迭代器在jQuery可以自动递归?

(我知道如何在javascript中做,只是想知道我是否真的看到我以为我看到了。)

非常感谢!

编辑:清楚的是,我在想一个像jQuery.each()这样的实用程序方法,它将递归地遍历javascript对象及其嵌套对象。

给定下面的示例,each()方法将遍历所有对象,包括myobj.obj2.key2中的嵌套对象。

我可以宣誓,我在jQuery文档中看到了一些东西,但现在我找不到它。

谢谢。

var myobj = {
    obj1: {key1:'val1',key2:'val2'},obj2: {key1:'val1',key2: {nest1:'val1',nest2:'val2',nest3:'val3'}},obj3: {key1:'val1',key2:'val2'}
}

$jQuery.each(myobj,function(key,val) {
    // Code to run over each key/val pair
    // Does so recursively to include all nested objects
})

解决方法

.find(‘selector’)方法基本上是.children()的一个隐藏版本,并且将找到与选择器匹配的任何后代对象,而不是.children(),后者仅查找第一级后代中的对象。

第二次编辑(我第一次写得不好,把代码弄了一点!):

好吧,我不认为这个功能作为一个标志将是有意义的:你可以很高兴地通过该对象永远递归(相信我,我打破了firefox这样做),所以你需要一些交互,以确保你只递归子对象是有效的递归候选。

你需要做的是简单地分割功能,如:

var myobj = {
    obj1: {key1:'val1',key2:'val2'}
}

$ jQuery.each(myobj,function(key,val){recursiveFunction(key,val)});

function recursiveFunction(key,val) {
        actualFunction(key,val);
        var value = val['key2'];
        if (value instanceof Object) {
            $.each(value,val) {
                recursiveFunction(key,val)
            });
        }

    }

function actualFunction(key,val){/// 做东西}}

原文链接:https://www.f2er.com/jquery/183961.html

猜你在找的jQuery相关文章