您的位置:首页 > Web前端 > JavaScript

JS.CategoryHelper 缓存级下拉框多级联动

2014-04-26 10:27 155 查看
<script type="text/javascript">
/*分类级联下拉框动态显示 Goosoz@163.com 2013-07*/
function CategoryHelper(rootId, alllist) {
function proClass(json) {
this.Id = json[0];
this.ParentId = json[1];
this.Name = json[2];
}
var list = new Array();
for (var i = 0; i < alllist.length; i++) {
var item = new proClass(alllist[i]);
list.push(item);
}

//获取当前proClass
function getProClass(id) {
for (var i = 0; i < list.length; i++) {
var item = list[i];
if (item.Id == id) { return item; }
}
return null;
};
//获取父辈proClass
function getParent(id) {
var curItem = getProClass(id);
if (curItem == null) { return null; }

for (var i = 0; i < list.length; i++) {
var item = list[i];
if (item.Id == curItem.ParentId) { return item; }
}
return null;
};
//获取下级proClass
function getChildrens(id) {
var arr = new Array();
for (var i = 0; i < list.length; i++) {
var item = list[i];
if (item.ParentId == id) {
arr.push(item);
}
}
return arr;
};
function getSiblings(id) {
var curItem = getProClass(id);
return getChildrens(curItem == null ? rootId : curItem.ParentId);
};
function getSelect(pId, id, arr) {
var html = "<select class=\"sitem\" pid=\"" + pId + "\">";
html += "<option value=\"" + pId + "\" " + (rootId == id ? "selected=\"selected\"" : "") + ">--</option>";
for (var i = 0; i < arr.length; i++) {
var item = arr[i];
html += "<option value=\"" + item.Id + "\" " + (item.Id == id ? "selected=\"selected\"" : "") + ">" + item.Name + "</option>";
}
html += "</select>";
return html;
};
//当前选中的ID
this.CurID = 0;
//当前选中的名称
this.CurName = null;
//当前选中的名称数组
this.CurNameArray = new Array();
//获取所有Select的Html
this.getHtml = function (id) {
this.CurID = id;
this.CurName = null;
this.CurNameArray = new Array();

if (id == rootId) {
var arr = getChildrens(rootId);
return getSelect(rootId, rootId, arr);
} else {
var _cur = getProClass(id);
var _childrens = getChildrens(id);
var html = "";
while (_cur != null) {
this.CurNameArray.push(_cur.Name);
var _siblings = getSiblings(_cur.Id);
html = getSelect(_cur.ParentId, _cur.Id, _siblings) + html;
_cur = getProClass(_cur.ParentId);
}
if (_childrens.length > 0) {
html += getSelect(id, rootId, _childrens);
}
return html;
}
};
}
</script>


<div id="areabox"></div>


var JS_AddressJSON=[["110000","0","北京市"],["130000","0","河南省"],["210000","0","上海市"],["130100","130000","周口市"]];


var pHelper = new CategoryHelper("0",JS_AddressJSON);
var pHelper_DefaultID = JS_AreaID;
$("#areabox").html(pHelper.getHtml(pHelper_DefaultID));
$(document).on("change","#areabox select", function () {
$("#areabox").html(pHelper.getHtml($(this).val()));
});

$("#btn-nextstep").click(function () {
var  area = pHelper.CurID;

});


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: