XML http请求,document.getelementbyID中断javascript

XML http请求,document.getelementbyID中断javascript,javascript,html,xml,document,xmlhttprequest,Javascript,Html,Xml,Document,Xmlhttprequest,我对XML非常陌生,但尽管如此,由于w3school的网站从文件中加载了信息,我还是设法获得了一个工作脚本,如下所示:。不幸的是,我遇到了一个小问题,与一个重复的网站,即使我已经研究,我还没有找到一个答案,为什么 除了elementId名称之外,我的第二个站点的代码是相同的 我使用的是wamp服务器,我的XML文件“PortfolioInfo.XML”与index.html位于同一目录中,我的XML中的一个标记中有一个标记。我想将XML中标记的信息插入HTML标记中 我的Javascript是:

我对XML非常陌生,但尽管如此,由于w3school的网站从文件中加载了信息,我还是设法获得了一个工作脚本,如下所示:。不幸的是,我遇到了一个小问题,与一个重复的网站,即使我已经研究,我还没有找到一个答案,为什么

除了elementId名称之外,我的第二个站点的代码是相同的

我使用的是wamp服务器,我的XML文件“PortfolioInfo.XML”与index.html位于同一目录中,我的XML中的一个标记中有一个标记。我想将XML中标记的信息插入HTML标记中

我的Javascript是:

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","PortfolioInfo.xml",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;

document.getElementById("contactName").innerHTML=xmlDoc.getElementsByTagName("name")[0].childNodes[0].nodeValue;
如果我注释掉document.getElementById行,如果没有注释掉其余的Javascript代码,那么它不会中断。我试着把它放在HTML文件本身的body标记的末尾

完整的HTML在这里:

<!DOCTYPE html>
<html>
<head>
    <title>Portfolio: Darrell James</title>
    <link rel="stylesheet" type="text/css" href="style.css" />
    <link href='http://fonts.googleapis.com/css?family=Aldrich' rel='stylesheet' type='text/css'>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
    <script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>
</head>
<body>
<div id="home">

</div>

<div id="about">
    <div id="aboutHome"><span class="arrow"><<</span></div>
    <div id="aboutSlide">
        <div id="aboutText">
            about
        </div>
    </div>
</div>

<div id="gallery">
    <div id="galleryHome"><span class="arrow"><<</span></div>
    <div id="gallerySlide">
        <div id="galleryText">
            gallery
        </div>
    </div>
</div>
<div id="contact">
    <div id="contactHome"><span class="arrow"><<</span></div>
    <div class="nobr" id="contactContent">
        <span id="contactName">
        </span>
    </div>
    <div id="contactSlide">
        <div id="contactText">
            contact
        </div>
    </div>
</div>

<script src="script.js"></script>
<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","PortfolioInfo.xml",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;

document.getElementById("contactName").innerHTML=xmlDoc.getElementsByTagName("name")[0].childNodes[0].nodeValue;

</script>
</body>

投资组合:达雷尔·詹姆斯

当代码中断时,您会收到什么错误消息?元素是否存在于XML中您希望它们出现的位置?我已经将这一点弄得很复杂,很抱歉。没有错误代码。HTML底部的JavaScript最初位于前面声明的Script.js中。在Script.js中,我有很多JQuery在执行其他功能,这个脚本位于顶部(这是标准的js,JQuery不正确吗?),当它在Script.js中时,整个javascript文件会中断,好像有语法错误或其他什么。它们是我在XML中所期望的,Darrell这是正确的嵌套吗?您是否尝试过使用borwser中的调试器来调试它?即,按F12键进入调试器。FF安装FireBug,然后F12将激活调试器。Chrome F12运行调试器。这似乎是一个愚蠢的问题,但您是否已检查以确保xmlhttp.responseXML实际上已填充数据,并且是包含getElementsByTagName函数的正确XML对象类型?@RiggsFolly,我在调试程序中,但我不确定要寻找什么来确定脚本的问题。