我的代码中是否有错误或者是否与我的Firefox 12浏览器有关?

时间:2012-05-16 23:58:58

标签: html xml dom

我从教程中复制了以下代码,但仍然无法弄清楚我是否在某处犯了错误或是否与浏览器支持有关。在此先感谢您向我发出了什么事情!

<html>
<head>
<script type="text/javascript">

function loadXMLDoc(dname)
{   
    if(window.XMLHttpRequest)
    {
        xhttp = new XMLHttpRequest();
    }
    else
    {
        xttp = new ActiveXObject("Microsoft.XMLHTTP");
    }

    xhttp.open("GET", dname, false);
    xhttp.send();
    return xhttp.responseXML;
}

function change(text)
{
    var xmlDoc = loadXMLDoc("dom.xml");
    var x = xmlDoc.getElementsByTagName("title")[0].childNodes[0];

    x.nodeValue = text;

    var y = xmlDoc.getElementsByTagName("title");
    for(i=0; i<y.length; i++) 
    {
        document.write(y[i].childNodes[0].nodeValue+"<br />");
    }
}

function remove(node)
{
    xmlDoc = loadXMLDoc("dom.xml");
    var y = xmlDoc.getElementsByTagName(node)[0];

    xmlDoc.documentElement.removeChild(y);
    alert("The element "+node+" has been removed!");
}

function prove(u)
{
    var x = xmlDoc.getElementsByTagName(u);
    for (i=0; i<x.length; i++)
    {
        document.write(x[i].childNodes[0].nodeValue);
        document.write("<br />");
}

</script>
</head>
<body>
    <input type="button" value="remove" onclick="remove('book')" />
    <input type="button" value="prove it" onclick="prove('book')" />
</body>

</html>

------------更新-------------------------

这是一个可能有用的XML文件:

<bookstore>
    <book category="cooking">
        <title lang="en">Everyday Italian</title>
        <author>Giada</author>
        <year>2005</year>
        <price>30.00</price>
    </book>
    <book category="cooking">
        <title lang="en">Book 2</title>
        <author>Giada</author>
        <year>2005</year>
        <price>30.00</price>
    </book>
    <book category="cooking">
        <title lang="en">Book 3</title>
        <author>Giada</author>
        <year>2005</year>
        <price>30.00</price>
    </book>
</bookstore>

3 个答案:

答案 0 :(得分:1)

我认为问题可能是因为document.write

  

在页面加载完成后运行的任何document.write语句   将创建一个新页面并覆盖当前的所有内容   页。

}证明函数声明

之后还缺少for

尝试在innerHTML或某个html元素上使用div来解决此问题。

除此之外,我发现您的代码没有任何问题

答案 1 :(得分:0)

该脚本正在查找名为“dom.xml”的文件

如果您将该文件放在与上一页相同的目录中,您将得到不同的结果。

答案 2 :(得分:0)

看起来你错过了最后一个函数证明或for循环的括号。

您也可以申报

var xmlDoc = loadXMLDoc("dom.xml");

在每个函数之外,或将其添加到prove()