0

チュートリアルから次のコードをコピーしましたが、どこかで間違いを犯したのか、それともブラウザのサポートに関係しているのかを理解できませんでした。何が起こったのかを指摘してくれてありがとう!

<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>
4

3 に答える 3

1

問題は原因かもしれないと思いますdocument.write

ページの読み込みが完了した後に実行されるdocument.writeステートメントは、新しいページを作成し、現在のページのすべてのコンテンツを上書きします。

また、prove関数のステートメントの}後に欠落がありますfor

この問題を解決するには、またはいくつかのhtml要素を使用innerHTMLしてみてください。div

それ以外は、コードに問題はありません

于 2012-05-17T06:38:42.300 に答える
0

スクリプトは「dom.xml」という名前のファイルを探しています

そのファイルを上のページと同じディレクトリに置くと、異なる結果が得られます。

于 2012-05-17T00:03:41.233 に答える
0

最後の関数proveまたはforループのブラケットが欠落しているようです。

また、あなたは宣言したいかもしれません

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

各関数の外、またはそれをprove()に追加します

于 2012-05-17T00:12:48.903 に答える