2

我想使用 mootools<br />在标签后插入一个中断元素。<label>不幸的是,这行代码不起作用:

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

<br />我应该先用 mootools创建元素吗?谢谢您的回复。

4

1 回答 1

3

这不是一个有效的元素构造函数"<br />",并且注入工作相反 - 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 回答