可以,前段时间也有位朋友问到过这样的问题。首先扩展一个属性 this.txt = [];然后给this.txt赋值:
MzTreeView.prototype.dataFormat = function()
{
var a = new Array(),b = new Array(),d = this.nodes;
for (var i in d){
a[a.length] = i;
b[b.length] = d[i].match(/[^:]+(?=;)/)+','+i.replace(/(?:\d*_)*?(\d+)$/,'$1');
}
this.names = a.join(this._d + this._d);
this.txt = b.slice(0);
this.totalNode = a.length; a = null; b = null;
};最后修改getPath方法:
MzTreeView.prototype.getPath= function(sourceId)
{
Array.prototype.indexOf = function(item)
{
for(var i=0; i<this.length; i++)
{
if(this[i]==item) return i;
}
return -1;
};
Array.prototype.indexStr = function(str){
for(var i=0; i<this.length; i++){
var aTmp = this[i].split(',');
if(aTmp[0]==str) return aTmp[1];
}
return -1;
};
var _d = this._d, d = this.divider;
var A = new Array();
var aTxt = this.txt;
var id = (isNaN(sourceId))?aTxt.indexStr(sourceId):sourceId; A[0] = id; while(id!="0" && id!="")
{
var str = "(^|"+_d+")([^"+_d+d+"]+"+d+ id +")("+_d+"|$)";
if (new RegExp(str).test(this.names))
{
id = RegExp.$2.substring(0, RegExp.$2.indexOf(d));
if(A.indexOf(id)>-1) break;
A[A.length] = id;
}
else break;
}
return A.reverse();
};
MzTreeView.prototype.dataFormat = function()
{
var a = new Array(),b = new Array(),d = this.nodes;
for (var i in d){
a[a.length] = i;
b[b.length] = d[i].match(/[^:]+(?=;)/)+','+i.replace(/(?:\d*_)*?(\d+)$/,'$1');
}
this.names = a.join(this._d + this._d);
this.txt = b.slice(0);
this.totalNode = a.length; a = null; b = null;
};最后修改getPath方法:
MzTreeView.prototype.getPath= function(sourceId)
{
Array.prototype.indexOf = function(item)
{
for(var i=0; i<this.length; i++)
{
if(this[i]==item) return i;
}
return -1;
};
Array.prototype.indexStr = function(str){
for(var i=0; i<this.length; i++){
var aTmp = this[i].split(',');
if(aTmp[0]==str) return aTmp[1];
}
return -1;
};
var _d = this._d, d = this.divider;
var A = new Array();
var aTxt = this.txt;
var id = (isNaN(sourceId))?aTxt.indexStr(sourceId):sourceId; A[0] = id; while(id!="0" && id!="")
{
var str = "(^|"+_d+")([^"+_d+d+"]+"+d+ id +")("+_d+"|$)";
if (new RegExp(str).test(this.names))
{
id = RegExp.$2.substring(0, RegExp.$2.indexOf(d));
if(A.indexOf(id)>-1) break;
A[A.length] = id;
}
else break;
}
return A.reverse();
};
解决方案 »
- js 下拉列表判断问题
- 张孝祥javascript视频的ppt课件
- 这段弱智代码错在哪了?
- 有两行代码很奇怪,看不懂
- 【原创+源码+散分】最近有几个人来问javascript的HTML Slider控件,我做了一个出来,更多功能正在完善中。
- 在看JavaScript:权威指南(The.Definitive.Guide ),implementation-defined是什么 意思?谢谢
- JS是否支持变长参数的函数,如何使用?在线等
- 急,急 关于javascript
- 请问怎样在一个表格里面字体从下至上升上去,做到像字幕的效果一样?
- 请高手查错,当然低手也可以来!
- JavaScript 图片切割效果
- js禁用了下拉框怎樣啟用
//example focusTree("0_1_2")
//0_1_2是一个完整的路径
function focusTree(arrSourceIndex)
{
var arr = arrSourceIndex.split("_");
for(var i=0;i<arr.length-1;i++)
expandNode(arr[i]+"_"+arr[i+1]);
}
function expandNode(sourceIndex)
{
try
{
var expandId = tree.getAttribute(tree.nodes[sourceIndex],"index");
tree.focusClientNode(expandId);
if (!tree.node[expandId].isExpand)
tree.newExpand(expandId);
}
catch(e){}
}