2012-04-12 64 views
2

我想通過使用mootools在標籤<label>後插入中斷元素<br />。不幸的是這行代碼不起作用:插入中斷<br />與mootools

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

我應該創建元素<br />先用mootools的?感謝您的回覆。

+0

當您說「不工作」時:您是否收到錯誤?您是否使用Chrome開發工具檢查了該元素是否正在插入但未呈現? – 2012-04-12 15:05:22

+0

我得到這個錯誤:「Uncaught TypeError:無法讀取屬性'parentNode'null」 – Bloggerschmidt 2012-04-12 15:27:15

回答

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中解決這個問題。

+0

謝謝。第一個示例適用於一個標籤,最後一個適用於多個標籤。 – Bloggerschmidt 2012-04-12 15:40:20