2010-11-09 62 views
2

將以下jQuery代碼轉換爲MooTools代碼的最佳方法是什麼?jQuery to MooTools

$('.some_element a').each(function(){ 
    var arr = $(this).attr('href').split('/'); 
    var last = arr[arr.length-1]; 
    $(this).prepend('<img src="'+last+'" />'); 
}); 

還是在平原的話 - 我需要選擇一些元素(「.some_element」)到圖像src屬性從鏈接href屬性(部分拍攝後,最後這些鏈接的所有鏈接,並在前面加上圖片'/'在href屬性中)。

回答

4
$$('.some_element a').each(function(el) { 
    var arr = el.get('href').split('/'); 
    var last = arr.getLast(); 
    var image = Element('img', { 
     src: last 
    }).inject(el, 'before'); 
}); 

活生生的例子:http://www.jsfiddle.net/oskar/yRdvD/

+0

這工作在你的活生生的例子,但在我的螢火蟲控制檯上出現錯誤('el.get('href')不是函數...')。可能是什麼問題? – egis 2010-11-09 08:41:34

+0

@egis - 如果你有一個沒有'href'屬性的''標籤,我猜可能會發生這種情況? – Spudley 2010-11-09 09:18:56

+0
0

這裏是工作的例子,正是我需要(回答我的問題,呵呵):

$$('.some_element a').each(function(el) { 
    var arr = el.getAttributeNode('href').nodeValue.split('/'); 
    var last = arr.getLast(); 
    var image = new Element('img', {src : last}); 
    image.inject(el, 'top'); 
}); 
+0

我應該接受我擁有的答案嗎?我在這裏是新的...... – egis 2010-11-09 12:01:37

+1

如果它是正確的答案:)說了這麼一句話,考慮到你沒有提供任何標記來運行它,或者指定了你使用的mootools的版本,oskar的答案是否是正確的mootools語法。如果使用1.12,那麼'.get'將不起作用 - 請改用'.getProperty()'。無論哪種方式,請避開'getAttributeNode'解決方案,imo。 – 2010-11-09 13:01:15

+0

對不起,下次我會更具體。我不確定它是哪個版本,它是Joomla的一部分:) Oskars答案和此鏈接(http://www.garrickcheung.com/javascript/form-property-setget-error-with-mootools-in-internet -explorer /)給我解決了我的問題。在給定的文章中提到了getProperty()。它真的很糟糕嗎? – egis 2010-11-10 06:14:49

2
$$('.some_element a').each(function(anchor){ 
    new Element('img[src="' + anchor.get('href').split('/').getLast() + '"]').inject(anchor, 'top'); 
});