0

XML ノードの子の長さを取得しようとしています。他のブラウザでは、クロムを除いて正確な結果が得られるようです。子の数が 6 の場合、chrome は 13 を返します。このため、メソッドhasChildNodes()orはエラーをhasChildren()返しUncaught TypeError: Cannot call method 'hasChildNodes' of undefinedます。Chrome でコードを実行できるように、いくつかの代替案を教えてください。

$.ajax({
  type: "GET",
  url: "tree1.xml",
  dataType:"xml",
  success: function(xml){     

    var root=xml.documentElement;

    var childs1=root.childNodes;
    var len=$(childs1).size();

    alert(len);

これは、子供の数を警告しているコードの一部です。ルート要素には 6 つの子要素がありますが、クロム アラートは 13 です

4

1 に答える 1

0

あなたが欲しいのは.childrenの代わりです.childNodes

後者にはテキスト ノードも含まれるため、通常はより大きな数値が返されます。さらに悪いことに、要素と同じメソッドをサポートしていません。

.length子要素の数を決定するには、プロパティを jQuery 内にラップする代わりに使用できます。

var childs1 = root.children;
var len = childs1.length;
于 2013-02-22T06:43:23.027 に答える