<div class="selectBox">
</div>
<input type="hidden" name="test" id="selectVal">
<script>
var default_val = -1;
$(function () {
var one_array=[{"id":1,"name":"11111","child":[{"id":4,"name":"1-44444"},{"id":5,"name":"1-55555"},{"id":6,"name":"1-66666"}]},{"id":2,"name":"22222","child":[{"id":7,"name":"2-77777"},{"id":14,"name":"-14--14"},{"id":140,"name":"-140--14"},{"id":8,"name":"2-88888","child":[{"id":13,"name":"-13--13","child":[{"id":99,"name":"99-99"},{"id":100,"name":"100"},{"id":101,"name":"101"},{"id":102,"name":"102"}]}]}]},{"id":3,"name":"33333","child":[{"id":9,"name":"3-99999"},{"id":10,"name":"3-10--10"},{"id":11,"name":"3-11--11"}]},{"id":12,"name":"12--12"}];
var box = $("div.selectBox");
var depth=[];
if(default_val>=0){
function ifInObject(arr,value, len) {
for (var i = 0; i < arr.length; i++) {
if(arr[i]['id'] == value){
len.push(i);
depth = len; break;
}else if (arr[i]['child'] && depth.length == 0) {
len.push(i);
ifInObject(arr[i]['child'], value, len);
if(lowermost(arr[i]['child'])){len = [];}
}
}
}
ifInObject(one_array, default_val, []);
}
console.log(depth)
if(depth.length){
var array = one_array;
$.each(depth, function(index,value){
forData(array, value);
if(index + 1 < depth.length) array = array[value]['child'];
});
$("#selectVal").val(default_val)
}else{
forData(one_array, -1);
}
$(document).on('change', 'select', function () {
$(this).nextAll().remove();
var array = one_array;
$("select").each(function () {
var index = $(this).find('option:selected').index() - 1;
if(array[index]['child']){ array = array[index]['child']; }else{ array = ''; }
});
forData(array, -1);
$("#selectVal").val($(this).val())
});
function forData(array, defval) {
if(array){
var html='';
for (var i=0;i<array.length;i++){
var selected = defval == i ? ' selected' : '';
html += "<option value='"+array[i]['id']+"'"+selected+">"+array[i]['name']+"</option>";
}
box.append('<select><option value=\'0\'>请选择分类</option>'+html+'</select>');
}
}
function lowermost(arr) {
var res = false;
for (var i=0;i<arr.length;i++){
if(arr[i]['child'] && arr[i]['child'].length){
res = true; break;
}
}
return true;
}
});
</script>
建站时间:2019年02月01日
文章统计:129篇文章
访问统计:1.4万次
微信公众号:扫描二维码,关注我们