Javascript只显示值,不显示XML信息
我正在制作一个生产网站,介绍每个国家使用的跳线类型。一旦在下拉菜单上选择了国家,我需要它显示从XML页面调用的信息,但我能让它显示的只是列表项的值。这是我的javaJavascript只显示值,不显示XML信息,javascript,html,xml,innerhtml,Javascript,Html,Xml,Innerhtml,我正在制作一个生产网站,介绍每个国家使用的跳线类型。一旦在下拉菜单上选择了国家,我需要它显示从XML页面调用的信息,但我能让它显示的只是列表项的值。这是我的java <!DOCTYPE html> <html> <head> <link href="style.css" rel="stylesheet" /> </head> <body> <form> <select id="X" onchange
<!DOCTYPE html>
<html>
<head>
<link href="style.css" rel="stylesheet" />
</head>
<body>
<form>
<select id="X" onchange="myFunction ();">
<option value="X">Please Choose a Country</option>
<script>
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET","cords_data.xml",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;
var x=xmlDoc.getElementsByTagName("Row");
for (i=0;i<x.length;i++)
{
document.write("<option value='");
document.write(i);
document.write("'>");
document.write(x[i].getElementsByTagName("Country")[0].childNodes[0].nodeValue);
}
</script></select> <!-- <input type="submit" value="Select" onclick="go();"> -->
请选择一个国家
if(window.XMLHttpRequest)
{//IE7+、Firefox、Chrome、Opera、Safari的代码
xmlhttp=新的XMLHttpRequest();
}
其他的
{//IE6、IE5的代码
xmlhttp=新的ActiveXObject(“Microsoft.xmlhttp”);
}
open(“GET”,“cords_data.xml”,false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;
var x=xmlDoc.getElementsByTagName(“行”);
对于(i=0;i
好的,这是我得到的
基本上,我重新创建了您的表单,并将JQuery用于以下几个目的:
首先,我创建了两个自定义JQuery事件,第一个在选择国家时调用,第二个在ajax函数返回数据并用数据填充HTML时调用
接下来,我在触发事件的更改的选择列表中添加一个事件侦听器
然后,我创建了一个javascript函数作为ajax调用的包装器。在这段代码中,我必须放入示例数据,因为我没有实际的XML文件,而且JSFIDLE实际上不允许外部ajax发布。当您在本地尝试此操作时,请取消注释下面的代码(在FIDLE中),并注释掉我的测试代码
基本思路是:当用户选择一个国家时,加载数据。您可以使用所选国家筛选数据,然后将其显示在页面上
//Uncomment these lines in your code
$.ajax({
url: "cords_data.xml"
, cache: false
, type: "get"
, data: null
}).done(function (xmlData) {
if (xmlData != undefined && xmlData != null) { // make sure we got data back
$(document).trigger("display-cord-data", xmlData);
} else {
console.log("No data returned.");
alert("An error occurred while loading data.");
} // end if/else
}).fail(function (data) {
console.log(data);
alert("BOOOM");
});
作为如何使用JQuery解析XML的起点,请参见以下链接:
此外,以下是一些将XML文档中的节点作为目标的方法
我不确定我是否理解代码。看起来你在给x赋值,然后稍后调用getElementsByTagName…另外,你能发布你的HTML标记吗?我在那里添加了我所有的代码,是的,我不理解这部分。我想我现在对你的问题有点了解了。我会做一些工作。a另外,您是否能够/是否考虑过使用JQuery简化ajax调用?不,我不完全确定如何进行,或者从何处开始感谢您!那么,我到底应该在代码中放在何处,还是干脆将脚本取出?我是否必须向其中添加任何其他信息,还是保持原样?基本上,您可以这样做使用JS FIDLE中的所有脚本(并取消注释与上面注释掉的行相匹配的行。您还可以注释掉我添加的测试代码。您还可以调整我用于针对html标记(如.content和.header)的JQuery选择器,以匹配您的需要。
//Uncomment these lines in your code
$.ajax({
url: "cords_data.xml"
, cache: false
, type: "get"
, data: null
}).done(function (xmlData) {
if (xmlData != undefined && xmlData != null) { // make sure we got data back
$(document).trigger("display-cord-data", xmlData);
} else {
console.log("No data returned.");
alert("An error occurred while loading data.");
} // end if/else
}).fail(function (data) {
console.log(data);
alert("BOOOM");
});