0

プロトタイプを使用して、OLリストに新しい要素を追加しています。.firstChildプロパティを使用するために、何かを行う前にcleanWhitespace()関数を使用しています。これは非常にうまく機能しており、OLのinnerHTMLをトレースしている場合は、期待どおりに単純な文字列になっています。

次に、新しいLIアイテムを追加し、空白を追加します。新しいLIを追加した後にcleanWhitespace()関数を適用しても、効果はありません。なぜ何かアイデアはありますか?

これが私のコードです:

$$('div.pagination > ol').each(function(item){
    item.cleanWhitespace(); // Working
    if(!item.firstChild.childElementCount) {
        var prevLi = document.createElement('li');
        prevLi.update('<a href="#">&laquo;</a>');
        prevLi.addClassName('disabled');
        item.insertBefore(prevLi, item.firstChild);
    }else{
        item.firstChild.children[0].update('&laquo;');
    }
    item.cleanWhitespace(); // Not working
});

前もって感謝します。

4

1 に答える 1

0

ここで使用している理由がよくわかりませんが、テキストノードをヒットしないためcleanWhitespaceだけに使用する場合は、それをすべて放棄し、テキストノードとコメントノードをスキップするため、 Element#firstDescendantを使用します。PrototypeのすべてのDOMトラバーサルメソッド(、、など)は、不要なガベージをスキップします。firstChilddescendantsimmediateDescendants

于 2012-06-07T19:55:53.090 に答える