你的位置:首页 > Java教程

[Java教程]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;}

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