/* *@param xmlUR " /> 精品一区二区三区四区五区六区,5g天天奭视频,亚洲色综合中文字幕在线

天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

JXTree對(duì)象,讀取外部xml文件數(shù)據(jù),生成樹的函數(shù)

/******************************************
*JXTree對(duì)象,讀取外部xml文件數(shù)據(jù),生成樹
*@author brull
*@email [email protected]
*@date 2007-03-27
*******************************************/

/*
 *@param xmlURL XML文件的地址
 */
var JXTree = function(xmlURL)
{
    var result = new Array();

    /*****************************
    *首先定義TreeNode抽象對(duì)象
    *TreeNode對(duì)象屬性:
    *id 唯一編號(hào),必須在xml文件里定義為節(jié)點(diǎn)屬性
    *level 節(jié)點(diǎn)層次,從-1開始(即根節(jié)點(diǎn))
    *_click 節(jié)點(diǎn)click,在xml文件定義為節(jié)點(diǎn)屬性[可選]
    *isLast 是否為本節(jié)點(diǎn)所在層次最后一個(gè)節(jié)點(diǎn)
    *parent_isLast 父節(jié)點(diǎn)是否為父節(jié)點(diǎn)所在層次的最后一個(gè)節(jié)點(diǎn)
    *toHTML 本節(jié)點(diǎn)轉(zhuǎn)成HTML代碼的方法
    *******************************/
    var TreeNode = function (node,level)
    {
        var parent_elements = node.parentNode ? (node.parentNode.parentNode ? node.parentNode.parentNode.childNodes : null) : null;
        var elements = node.parentNode ? node.parentNode.childNodes : null;
        this.id = XMLDom.getAttribute(node,"id") ? XMLDom.getAttribute(node,"id") : "";
        this.level = level;//節(jié)點(diǎn)的層次
        this.isLast = elements ? ((elements.item(elements.length-2) === node) ? true : false) : false;
        this._click = XMLDom.getAttribute(node,'click') ? XMLDom.getAttribute(node,'click') : "";
        this.toHTML = null;//function
    }

    /*****************************
    *ElementNode對(duì)象,繼承自抽象對(duì)象TreeNode
    *新增屬性:
    *_nodeName 節(jié)點(diǎn)名稱
    ******************************/
    var ElementNode = function(node,level)
    {
        TreeNode.apply(this,arguments);
        this._nodeName = XMLDom.getAttribute(node,"name") ? XMLDom.getAttribute(node,"name") : "";
        this.toHTML = function(){
            var result = "";
            if(this.isLast) result += "<div><div class='minus_bottom'";
            else result += "<div><div class='minus'";
            result += " id='"+this.id+"_join' onclick=/"JXTree.changeState('"+this.id+"')/"></div><div id='"+this.id+"_folder' class='folder_open'></div><span class='text' onclick=/""+this._click+"/">"+this._nodeName+"</span></div>";
            return result;
        }
    }

    /*****************************
    *TexNode對(duì)象,繼承自抽象對(duì)象TreeNode
    *屬性和TreeNode一樣
    *新增屬性:
    *_nodeValue 節(jié)點(diǎn)值
    ******************************/
    var TextNode = function(node,level)
    {
        TreeNode.apply(this,arguments);
        this._nodeValue = node.firstChild.nodeValue;
        this.toHTML = function(){
            var result = "";
            if(this.isLast) result += "<div><div class='join_bottom'></div>";
            else result += "<div><div class='join'></div>";
            result += "<div class='page'></div><span class='text' id='"+this.id +"_item' onclick=/"JXTree.setFocus(this.id);"+this._click+"/">"+this._nodeValue+"</span></div>";
            return result;
        }
    }

    /**********Node 節(jié)點(diǎn)構(gòu)建結(jié)束,開始解釋XML文件************/

    var DOMRoot=XMLDom.loadXML(xmlURL).documentElement;//同步加載XML文件
    var level = -1;//root節(jié)點(diǎn)level
    var stack = new Array(1);
    result.push("<div><div class='root'></div><span class='text'>"+XMLDom.getAttribute(DOMRoot,"name")+"</span></div>");
    //解釋xml文件內(nèi)容成樹狀態(tài)展開的HTML代碼,遞歸調(diào)用
    this.parseXML = function(node){
        stack.push(level);
        level++;
        var element = new ElementNode(node,level);
        var elements = node.childNodes;
        if(level != 0){
            if(element.isLast)
                result.push("<div id='"+element.id+"_body' class='body_empty'>");
            else
                result.push("<div id='"+element.id+"_body' class='body_line'>");
        }
        for(var i=0;i<elements.length;i++){
            if(elements.item(i).nodeName == "item"){//節(jié)點(diǎn)為樹葉
                var textNode = new TextNode(elements.item(i),level);
                result.push(textNode.toHTML());
                textNode = null;//及時(shí)釋放對(duì)象
            }
            else if(elements.item(i).nodeType ==1){//節(jié)點(diǎn)為樹枝
                var elementNode = new ElementNode(elements.item(i),level);
                result.push(elementNode.toHTML());
                elementNode = null;//及時(shí)釋放對(duì)象
                this.parseXML(elements.item(i));
            }
        }
        if(level != 0)result.push("</div>");
        level = stack.pop();
    }

    //得到解釋結(jié)果并返回
    this.getTree = function(){
        this.parseXML(DOMRoot);
        DOMRoot = null;//釋放DOM對(duì)象
        return result.join("");
    }
    /*************靜態(tài)屬性***************/
    JXTree.curText = null;//當(dāng)前文本的id

    /************靜態(tài)方法***************/
    JXTree.changeState = function (id){//展開或者收縮節(jié)點(diǎn)內(nèi)容
        var _body = document.getElementById(id + "_body");
        var _join = document.getElementById(id+"_join");
        var folder = document.getElementById(id+"_folder");
        (_body.style.display == "none") ? (
            _body.style.display = "block",
            _join.className = _join.className.replace("plus","minus"),
            folder.className = "folder_open"
        ) : (
            _body.style.display = "none",
            _join.className = _join.className.replace("minus","plus"),
            folder.className = "folder_close"
        )
    };//changeState
    JXTree.setFocus = function(id){
        if(JXTree.curText)
            with(document.getElementById(JXTree.curText).style){
                backgroundColor = "";
                color = "#000";
            }
            with(    document.getElementById(id).style){
                backgroundColor = "#003366";
                color = "#FFF";
            }
        JXTree.curText = id;
    }
}

JavaScript技術(shù)JXTree對(duì)象,讀取外部xml文件數(shù)據(jù),生成樹的函數(shù),轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 亚洲人成网站7777视频 | 国产亚洲精品第一区香蕉 | 国产精品乱码色情一区二区视频 | 国产午夜婷婷精品无码A片 国产午夜视频在永久在线观看 | bbw videos 欧美老妇| 国产精品久久久久久久A片冻果 | 午夜一级毛片看看 | 人妻激情综合久久久久蜜桃 | 国产色情短视频在线网站 | 国产精品夜夜春夜夜爽久久小 | 亚洲成在人线视频 | 中文字幕成人在线观看 | 视频一区亚洲视频无码 | 日韩经典欧美一区二区三区 | 大陆极品少妇内射AAAAAA | 婷婷久久综合九色综合伊人色 | 中文字幕免费在线视频 | 麒麟色欧美影院在线播放 | 久久精品国产亚洲AV久五月天 | 亚洲激情网站 | 杨幂视频1分11未删减在线观看 | 欧洲兽交另类AVXXX | 久久青草影院 | 在线观看成年人免费视频 | 青青青国产依人精品视频 | 伊人国产精品 | 欧美另类老少配hd | 久久综合久久鬼 | 嫩草亚洲国产精品 | 被黑人做的白浆直流 | 欧美97色伦影院在线观看 | 一亲二脱三插 | 91精品国产免费入口 | 芭乐视频网页版在线观看 | 久久久精品免费免费直播 | 欧美人禽Zozo动人物杂交 | 国产成人免费在线 | 欧美片第1页 综合 | 亚洲天堂一区二区三区 | 日韩欧美视频一区二区在线观看 | GOGOGO高清在线播放免费 |