本篇內(nèi)容介紹了“Ajax讀取XML實現(xiàn)動態(tài)下拉導航的方法”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!
站在用戶的角度思考問題,與客戶深入溝通,找到荷塘網(wǎng)站設計與荷塘網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設計與互聯(lián)網(wǎng)技術結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:網(wǎng)站建設、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、國際域名空間、網(wǎng)站空間、企業(yè)郵箱。業(yè)務覆蓋荷塘地區(qū)。
代碼如下:
//id為自身id,pid為父級分類ID
js代碼
代碼如下:
var root;
//FireFox不支持selectNodes方法,在網(wǎng)上找到這段代碼解決了這個問題。兼容了IE和FireFox.
//創(chuàng)建selectNodes方法
if( document.implementation.hasFeature("XPath", "3.0") )
{
// prototying the XMLDocument
XMLDocument.prototype.selectNodes = function(cXPathString, xNode)
{
if( !xNode ) { xNode = this; }
var oNSResolver = this.createNSResolver(this.documentElement)
var aItems = this.evaluate(cXPathString, xNode, oNSResolver,
XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null)
var aResult = [];
for( var i = 0; i < aItems.snapshotLength; i++)
{
aResult[i] = aItems.snapshotItem(i);
}
return aResult;
}
// prototying the Element
Element.prototype.selectNodes = function(cXPathString)
{
if(this.ownerDocument.selectNodes)
{
return this.ownerDocument.selectNodes(cXPathString, this);
}
else{throw "For XML Elements Only";}
}
}
function createXMLHttpRequest() {
if (window.ActiveXObject) {
oXmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if (window.XMLHttpRequest) {
oXmlHttp = new XMLHttpRequest();
}
}
function CreateXMLDOM()
{
createXMLHttpRequest();
oXmlHttp.open( "GET", "XML路徑", false ) ;
oXmlHttp.send(null) ;
root = oXmlHttp.responseXML.documentElement;
}
CreateXMLDOM()
function funCreatePullMenu(passPid,ChildId)
{
var currentItems = root.selectNodes("http://Proot/Item[@pid = " + passPid + "]");
var iItems = currentItems.length;
var k=0;
if(iItems > 0)
{
var pdiv = document.createElement("DIV");
pdiv.id="piv" + passPid;
pdiv.className = "piv" + ChildId;
pdiv.name = "piv" + passPid;
if(passPid>0)
{
pdiv.style.display="none";
document.getElementById("div" + passPid).appendChild(pdiv);
}
else
{
document.getElementById("odiv").appendChild(pdiv);
}
for(var i = 0; i < iItems; i++)
{
var _id = currentItems[i].attributes[0].value;
var newChild = document.createElement("DIV");
newChild.id="div" + _id;
newChild.className = "div" + ChildId;
newChild.name = "div" + _id;
var _v ;
if(CheckPullMenu(_id))
{
_1= _id
_v = " " +currentItems[i].firstChild.data + "";
}
else
{
_v = ""+ currentItems[i].firstChild.data +"";
}
newChild.innerHTML=_v;
document.getElementById("piv" + passPid).appendChild(newChild);
if(CheckPullMenu(_id))
{
funCreatePullMenu(_id,ChildId+1)
}
}
}
}
//檢測是否有下級
function CheckPullMenu(passPid)
{
var currentItems = root.selectNodes("http://Proot/Item[@pid = " + passPid + "]");
var iItems = currentItems.length;
if(iItems > 0)
{
return true;
}
else
{
return false;
}
}
//顯示隱藏層
function showsubmenu(sid)
{
var whichEl = document.getElementById( "piv" +sid);
if (whichEl.style.display == "none")
{
whichEl.style.display="block";
}
else
{
whichEl.style.display="none";
}
}
使用方法:在網(wǎng)頁中加入"
“Ajax讀取XML實現(xiàn)動態(tài)下拉導航的方法”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關的知識可以關注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!