JS简洁版下拉树

JS简洁版下拉树

这是struts2的应用其他也可以根据需要灵活改动:

        <script type="text/javascript">
    //JS下拉 树
var data =new Array();
<s:iterator  value="#request.articleTypelist" status="stuts">
data[${stuts.index}]= {id:'<s:property value="id" />',pid:'<s:property value="parentID" />',text:'<s:property value="name"  escape="false"/>'};

  </s:iterator>
function TreeSelector(item,data,rootId){
this._data = data;
this._item = item;
this._rootId = rootId;

}
TreeSelector.prototype.createTree = function(){
var len =this._data.length;
for( var i= 0;i<len;i++){
if ( this._data[i].pid == this._rootId){
this._item.options.add(new Option(".."+this._data[i].text,this._data[i].id));
for(var j=0;j<len;j++){
this.createSubOption(len,this._data[i],this._data[j]);

}
}
}
}

TreeSelector.prototype.createSubOption = function(len,current,next){
var blank = "    ";
if ( next.pid == current.id){
intLevel =0;
var intlvl =this.getLevel(this._data,this._rootId,current);
for(a=0;a<intlvl;a++)
blank += "    ";
blank += " ├-";
this._item.options.add(new Option(blank + next.text,next.id));

for(var j=0;j<len;j++){
this.createSubOption(len,next,this._data[j]);

}

}
}

TreeSelector.prototype.getLevel = function(datasources,topId,currentitem){

var pid =currentitem.pid;
if( pid !=topId)
{
for(var i =0 ;i<datasources.length;i++)
{
if( datasources[i].id == pid)
{
intLevel ++;
this.getLevel(datasources,topId,datasources[i]);
}
}
}
return intLevel;
}
function VF(){
    $('myselect').value=$('realtype').value;
}
</script>

 

 

 

你可能感兴趣的:(JavaScript,prototype,J#)