首页 > 网站 > WEB开发 > 正文

Javascript关于JSON集合的几种循环方法

2024-04-27 14:08:22
字体:
来源:转载
供稿:网友

javascript关于JSON集合的几种循环方法

/** * 根据json数据生成option树形控件 * 如果有children节点则自动生成树形数据 * @param {JSON} data * @param {int} n 节点深度 * @param {string} char 节点名称前缀 * @returns {string} * @since 1.0 2014-8-22 by sutroon * @example *      var data = (typeof (data) == "object") ? data : $.parseJSON(data); *      var str = ''; *      str=generate_options(data); */function generate_options(data, n, char) {    if (n == undefined) {        n = 0;    }    if (char == undefined) {        char = '..';    }    var pad = '';    while (n > 0) {        pad += char;        n--;    }    var str = '';    if (data.length) {        // 多行格式        for (var i = 0; i < data.length; i++) {            if (data[i].id) {                // 用于[{"id":"1","name":"name1"}]格式                                str += '<option value="' + data[i].id + '">' + pad + (data[i].name ? data[i].name : data[i].text) + '</option>';            } else if (data[i].item) {                // 用于[{"item":"1"},{"item":"2"}]                str += '<option value="' + data[i].item + '">' + pad + data[i].item + '</option>';            } else {                // 用于["item1","item2"]格式                str += '<option value="' + data[i] + '">' + pad + data[i] + '</option>';            }            if (data[i].children) {                str += generate_options(data[i].children, n + 1, char);            }        }    }    else {        // 用于{"a":"a1","b":"b2"}单行格式        for (var attr in data) {            str += '<option value="' + attr + '">' + data[attr] + '</option>';        }    }    return str;}======================================================补充Jquery版本=====================
/**     * Jquery版     * @param JSON或Array data     * @param integer n     * @param string char     * @returns string     * @since 1.0 <2015-6-11> SoChishun Added.     * @example      alert(generate_options([{"id": "1", "name": "name1"}]));     alert(generate_options([{"item": "1"}, {"item": "2"}]));     alert(generate_options(["item1", "item2"]));     alert(generate_options({"a": "a1", "b": "b2"}));     */    function generate_options(data, n, char) {        if (n == undefined) {            n = 0;        }        if (char == undefined) {            char = '..';        }        var pad = '';        while (n > 0) {            pad += char;            n--;        }        var str = '';        if ($.isArray(data)) {            // 多行格式            $.each(data, function () {                if (this.id) {                    // 用于[{"id":"1","name":"name1"}]格式                                    str += '<option value="' + this.id + '">' + pad + (this.name ? this.name : this.text) + '</option>';                } else if (this.item) {                    // 用于[{"item":"1"},{"item":"2"}]                    str += '<option value="' + this.item + '">' + pad + this.item + '</option>';                } else {                    // 用于["item1","item2"]格式                    str += '<option value="' + this + '">' + pad + this + '</option>';                }                if (this.children) {                    str += generate_options(this.children, n + 1, char);                }            })        }        else {            if ($.isPlainObject(data)) {                // 用于{"a":"a1","b":"b2"}单行格式                $.each(data, function (key) {                    str += '<option value="' + key + '">' + this + '</option>';                })            }        }        return str;    }

版权声明:本文原著天澜(14507247#QQ.com),版权遵循知识共享许可协议[查看]。您可自由转载收藏,但请留此声明,感谢!


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表