Javascript只显示值,不显示XML信息

Javascript只显示值,不显示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

我正在制作一个生产网站,介绍每个国家使用的跳线类型。一旦在下拉菜单上选择了国家,我需要它显示从XML页面调用的信息,但我能让它显示的只是列表项的值。这是我的java

 <!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");
    });