0

次の関数に数値を渡してカウンターを作成しています。

function numberToHtml(n) {
            function createSpan(n) {
                var span = document.createElement('span');
                span.textContent = n;
                return span;
            }
            function iter(n, container) {
                if (n === '') return container;
                container.insertBefore(createSpan(n.slice(-3)), container.firstChild);
                return iter(n.slice(0,-3), container);
            }
            return iter(String(n), document.createDocumentFragment());
        }

これは以下を返します:

DocumentFragment [ <span>, <span> ]

DocumentFragment で多数の要素を取得するのに問題があります。を試してみ$(myobject).lengthましたが、これは 1 を返します。

DocumentFragment の項目数を取得するにはどうすればよいですか?

4

2 に答える 2

2
var me = numberToHtml(123455);
alert( me.childElementCount);

アラート 2 注: 2 もme.children.length返します

何を操作する必要があるかを確認するには、次のようにします。

console.dir(me);

次に、コンソールで展開します。

于 2015-08-30T22:16:25.457 に答える
1

申し訳ありませんが、私の最初の答えは正しくありませんでした。どのようにして結果が得られたかを理解するのに苦労しました(それは役に立ちました)。あなたが探しているものは次のとおりです。

var myobject = numberToHtml(3231123123);
var length = $(myobject).children().length;
alert(length); // 4

または、juhana が指摘したように、jquery ラッパーを省略できます。

var myobject = numberToHtml(3231123123);
var length = myobject.children.length;
alert(length); // 4

span 要素は子として追加されるため、コンテナーの子をカウントする必要があります。

于 2015-08-30T22:11:32.490 に答える