JS,JQuery,之数组三维for循环

array(3) {
  [9]=>
  array(11) {
    ["actionid"]=>
    string(1) "9"
    ["actionname"]=>
    string(12) "一级菜单"

    ["child"]=>
    array(3) {
      [0]=>
      array(11) {
        ["actionid"]=>
        string(2) "25"
        ["actionname"]=>
        string(6) "二级菜单"

        ["child"]=>
        array(3) {
          [0]=>
          array(10) {
            ["actionid"]=>
            string(2) "13"
            ["actionname"]=>
            string(12) "

三级菜单

"  }          
[1]=> array(10) {  ["actionid"]=> string(2) "23"  ["actionname"]=> string(21) "三级菜单" }  }  }

这个问题是在,设计后台管理系统的时候遇到的,由于自己对JS不了解,也不怎么会写JS代码,所以一直没有想到比较好的方法。当然直接用PHP的foreach循环非常好解决,但是,我只是想试一试JS到底能不能实现,这样的三维数组的输出。


主要是可以实现前后端的分离


面对后端传到前端的这样的代码(如下数组

1、后端传过来的数组:

array(3) {
  [9]=>
  array(11) {
    ["actionid"]=>
    string(1) "9"
    ["actionname"]=>
    string(12) "一级菜单"

    ["child"]=>
    array(3) {
      [0]=>
      array(11) {
        ["actionid"]=>
        string(2) "25"
        ["actionname"]=>
        string(6) "二级菜单"

        ["child"]=>
        array(3) {
          [0]=>
          array(10) {
            ["actionid"]=>
            string(2) "13"
            ["actionname"]=>
            string(12) "
三级菜单
" } [1]=> array(10) { ["actionid"]=> string(2) "23" ["actionname"]=> string(21) "三级菜单" ["parentid"]=> string(2) "25" ["levelid"]=> string(1) "3" ["menuorderid"]=> string(1) "2" ["module"]=> string(5) "index" ["controller"]=> string(5) "video" ["action"]=> string(9) "ListVideo" ["viewmode"]=> string(1) "1" ["createdate"]=> string(19) "2014-04-19 18:37:42" } } }

2、JS,JQuery代码实现:

 实现代码如下:

<span style="font-size:14px;">    function powerlist(res) {
        for (var trees in res) {
            var parenttree = res[trees].actionname;

                tmp = $('.first.hide_templete').clone();//克隆
                $('.firsttree', tmp).text(parenttree);
                tmp.removeClass('hide_templete');//移除隐藏class值
                tmp.children().addClass('ab'+res[trees].actionid);//为每个一级父节点设置不同的class值
                tmp.appendTo('.powertree');//将克隆的添加到他的父节点

            var childs = res[trees].child;
            for (var tree in childs) {
                var firstchild     = childs[tree].actionname;

                tmp2 = $(".second.hide_templete").clone();
                $('.secondtree', tmp2).text(firstchild);
                tmp2.removeClass('hide_templete');
                tmp2.children().addClass('a'+childs[tree].actionid);
                tmp2.appendTo('.ab'+res[trees].actionid);

                var second = childs[tree].child;
                for ( var child in second) {
                    var secondchild = second[child].actionname;

                    tmp3 = $('.third.hide_templete').clone();
                    $('.thirdtree', tmp3).text(secondchild);
                    tmp3.removeClass('hide_templete');
                    tmp3.appendTo('.a'+childs[tree].actionid);
                }   
            }   
        }   
    }   </span>


jQuery循环遍历数组有多种方法。其中,最常用的方法是使用for循环和for in循环。另外,还可以使用while循环和forEach方法。以下是具体的解释和示例: 1. 使用for循环遍历数组: 在jQuery中,可以使用for循环来遍历数组。通过定义一个索引变量i,可以遍历数组的每个元素。示例代码如下: ```javascript $(function(){ var arr = [111,222,333,444,555,666]; for(var i = 0; i < arr.length; i++){ $("#tab").append("<tr><td>" + arr[i + "</td></tr>"); }; }); ``` 在这个示例中,我们定义了一个名为arr的数组,包含了一些数字。然后,使用for循环遍历数组中的每个元素,并将它们添加到id为"tab"的表格中。 2. 使用for in循环遍历数组: 另一种遍历数组的方法是使用for in循环。这种方法会遍历数组中的每个元素,并将其索引赋值给一个变量。示例代码如下: ```javascript $(function(){ var arr = [111,222,333,444,555,666]; for(var i in arr){ $("#tab").append("<tr><td>" + arr[i + "</td></tr>"); }; }); ``` 在这个示例中,我们使用for in循环来遍历数组arr。每次循环时,将数组中对应索引的元素添加到id为"tab"的表格中。 3. 使用while循环遍历数组: 除了使用for循环和for in循环,还可以使用while循环来遍历数组。示例代码如下: ```javascript $(function(){ var arr = [111,222,333,444,555,666]; var index = 0; while(arr[index]){ $("#tab").append("<tr><td>" + arr[index + "</td></tr>"); index++; } }); ``` 在这个示例中,我们使用while循环来遍历数组arr。通过判断数组中对应索引的元素是否存在,来确定循环的条件。每次循环时,将数组中对应索引的元素添加到id为"tab"的表格中,并将索引值递增。 综上所述,以上是使用jQuery循环遍历数组的几种方法。你可以根据具体的需求选择适合的方法来遍历数组
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值