好的,我正在努力解决这个问题......
我有一个页面可以提取一堆XML数据并且工作正常。
然后我决定在此页面和其他页面上添加一个搜索框,使该页面仅显示我的搜索结果。
我知道页面正在接收表单数据,并且它正确地存储在变量中。
我想使用这些变量来过滤我的xml文件的结果。
我现在拥有的是什么;
var x=xmlDoc.getElementsByTagName("ResidentialProperty");
mySearch = location.search.substr(1).split("&")
function getFromSearch() {
var x = 0
mySearch = location.search.substr(1).split("&")
for (x=0;x<=mySearch.length;x++) {
eval("document.forms.myNewForm."+mySearch[x])
}
}
document.write(mySearch);
for (i=0;i<x.length;i++) {
var item = x[i];
document.write("<div class='property'><div class='list_name'>");
if(item !== undefined) {
var itemElements = item.getElementsByTagName("StreetNumber");
if(itemElements.length > 0) {
if(itemElements[0].childNodes.length > 0) {
document.write(x[i].getElementsByTagName("StreetNumber")[0].childNodes[0].nodeValue+' ');
}
}
}
if(item !== undefined) {
var itemElements = item.getElementsByTagName("StreetDirPrefix");
if(itemElements.length > 0) {
if(itemElements[0].childNodes.length > 0) {
document.write(x[i].getElementsByTagName("StreetDirPrefix")[0].childNodes[0].nodeValue+' ');
}
}
}
等
这一切都有效但每次我尝试过滤它都会停止所有返回的结果。
请帮忙。
答案 0 :(得分:1)
可能值得使用像jQuery这样的库来解决这个问题。
e.g。 (在未经任何测试的情况下对代码进行了尝试)
var xml = $(xmlDoc);
var properties = xml.find('ResidentialProperty');
mySearch = location.search.substr(1).split("&");
var results = properties.filter(function() {
return $(this).val().substr(0, mysearch.length) === mySearch;
});
console.log(results);
参考
http://www.jquerybyexample.net/2013/02/jquery-parse-json-xml-html.html