2

mootoolsを使って<br />、ラベルの後にbreak要素を挿入したいです。<label>残念ながら、このコード行は機能しません。

$$('.class-name label').inject('<br />', 'after');

<br />最初に mootoolsで要素を作成する必要がありますか? 返信ありがとうございます。

4

1 に答える 1

3

これは有効な要素コンストラクターではなく、"<br />"inject は逆に動作します - newel.inject(target, where)。あなたが欲しいgrab

$$(".class-name label").grab(new Element("br"), "after");

パフォーマンスが重要な場合(IEと多くのアイテム)...

(function() {
    var br = new Element("br"), after = "after", inject = function(el) {
        el.grab(br.clone(), after) // or br.clone().inject(el, after)
    }
    $$(".class-name label").each(inject)
}());

または - mootools el コンストラクターのペナルティを回避するために、個人的には次のようにします。

(function() {
    var br = "br",
        after = "after",
        doc = document,
        ce = 'createElement',
        inject = function(el) {
            el.grab(doc[ce](br), after)
        }

    document.getElements(".class-name label").each(inject)
}());

正直なところ、可能であれば、最初に CSS でこれを解決する必要があります。

于 2012-04-12T15:20:45.580 に答える