0

に関するすべてのドキュメントelement.children(たとえばMDN ) を読みましたが、Google Chrome で正しく動作させることができません。私が取り組んでいるコードのセグメント:

<html><head>
    <script src="loadxmldoc.js"></script>
</head>
<body><script>
xmlDoc=loadXMLDoc("books.xml");

    document.write("<table border='1'>");
    var x=xmlDoc.getElementsByTagName("day");
    for (var i=0;i<x.length;i++){
    document.write("<td><table border='1'>");
    document.write("<tr><td>" + x[i].getAttribute("id") + "</td></tr>");

        var y=xmlDoc.getElementsByTagName("time");

        for (var j=0;j<y.length;j++){
            document.write("<tr><td><table border='1'>");
            document.write("<tr><td>Location: " + y[j].getAttribute("id") + ": ");
            document.write("</table></td></tr>");
    }
    document.write("</table></td>");
}
document.write("</table>");
</script></body></html>

問題は、 3,3,3,3,1getElementsByTagNameではy.lengthなく、毎回 16 になることです。を使用childNodesしましたが、テキスト要素が含まれていました。使用var y=x.item(i).children;しましたが、Chromeでは動作しません。FF で動作するため、Chrome でサポートされていないか、頭の中に何かが欠けていると思われます。ただし、私が見つけたすべてのドキュメントには、これは Chrome で動作するはずであると書かれています。

これは Chrome の正しい使い方ですか、.childrenそれとも何か問題がありますか?

4

3 に答える 3

0

私のChromeバージョン27では、次のようにうまく動作します:

[].forEach.call (document.body.children, function (e) { console.log (e); });

Firefox 16 と同様に

http://jsfiddle.net/jstoolsmith/3rBTF/で試してみてください

于 2013-07-06T17:26:26.767 に答える
0

childNodes標準プロパティである を試してください。childrenプロパティは、すべてのブラウザで機能するとは限りません。

于 2013-07-06T19:51:22.717 に答える