【发布时间】:2015-12-30 22:36:46
【问题描述】:
我的网页有两个下拉列表 1) 包含书名 2) 包含本书的链接。 数据以 XML 文件的形式存储 像这样:
<?xml version="1.0" encoding="UTF-8"?>
<BookDetail>
<book>
<bookName>Dollar Bahu</bookName>
<link>http:\\DollarBahu.in</link>
</book>
<book>
<bookName>The Lost Symbol</bookName>
<link>http:\\TheLostSymbol.in</link>
</book>
<book>
<bookName>Keep The Change</bookName>
<link>http:\\KeepTheChange.in</link>
</book>
</BookDetail>
功能: window.onload=函数() { var xhttp = new XMLHttpRequest(); xhttp.open("GET", "bookDetails.xml", false); xhttp.send(); xhttp.onreadystatechange = 函数() { 如果(xhttp.readyState == 4 && xhttp.status == 200) { var xml = xhttp.responseXML; var book = xml.getElementsByTagName('book'); var book = document.getElementById('book'), 链接 = document.getElementById('link');
for (i = 0; i < books.length; i++)
{
var obook = document.createElement('option'),
olink = document.createElement('option'),
tbook = document.createTextNode(books[i].children[0].innerHTML),
tlink = document.createTextNode(books[i].children[1].innerHTML);
obook.appendChild(tbook);
olink.appendChild(tlink);
book.appendChild(obook);
link.appendChild(olink);
map[tbook] = olink;
}
var updateLink = function(e)
{
//map[e.target.value].setAttribute('selected','');
//alert(map[e.target.value]);
for (var i = 0; i< link.children.length; i++)
{
link.children[i].removeAttribute('selected');
}
link.children[this.selectedIndex].setAttribute('selected','');
};
book.addEventListener('change', updateLink, false);
}
//var xmlString = "<BookDetail><book> <bookName>Dollar Bahu</bookName> <link>http:\\DollarBahu.in</link></book><book> <bookName>The Lost Symbol</bookName> <link>http:\\TheLostSymbol.in</link></book><book> <bookName>Keep The Change</bookName> <link>http:\\KeepTheChange.in</link></book></BookDetail>";
//var xml = ( new window.DOMParser() ).parseFromString(xmlString, "text/xml"),i,
//map = {};
}
}
</script>
我已在包含 bookName 的第一个下拉列表中连续插入值。 现在我的问题是如何从 XML 中获取该特定 bookName 的第二个下拉列表中的书籍链接?
【问题讨论】:
-
您的预期行为是什么?如果我在第一个下拉列表中选择 Dollar Bahu,则应该在第二个下拉列表中选择 http:\\DollarBahu.in?或者第二个下拉列表应该只填充相关的链接?这没有多大意义,因为每本书只有一个链接,对吧?
-
是的,每本书只有一个链接。应该是如果我在第一个下拉列表中选择了一本特定的书(例如 Dollar Bahu)。应该选择第二个下拉列表及其相关链接(即 http:\\DollarBahu.in)我能够获取由用户但不知道如何使用它从 XML 文件中获取关联的链接。
标签: javascript html ajax xml xslt