標籤:
/** * 根據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),著作權遵循知識共用許可協議[查看]。您可自由轉載收藏,但請留此聲明,感謝!
Javascript關於JSON集合的幾種迴圈方法