2011-06-07 44 views
1

我有一個包含有相同的類和一個唯一的ID鏈接未排序列表,我需要所有的ID添加到陣列中的JavaScript和。在DOM到數組添加列表中的元素在JS

<ul> 
<li><a class="item" id="10" href="#"></a></li> 
<li><a class="item" id="11" href="#"></a></li> 
<li><a class="item" id="12" href="#"></a></li> 
<ul> 

我該怎麼做?

回答

1

更容易(更MooTools的類)的方式做@Dimitar做:

var ids = $$('.item').get('id'); 

好運

+1

這怎麼樣mootools的更辦法?首先,'$$'實際上映射到'this.document.getElements',因此速度較慢。第二,這是一個合格的較少選擇器和更少高性能在缺乏'querySelectorAll'(IE),因爲它沒有任何getElementsByClassName方法這樣.item將步行所有節點的瀏覽器。和多數民衆贊成在性能真正重要頭對頭,$$( 「項目 」)。獲得(「 ID 」)''VS document.getElements(「 項目」)'後者獲勝。有趣的是,這讓我發現了mootools中的FF4錯誤:http://jsperf.com/ff4-mootools-slick-test/2 - 「.item」過度執行。在所有其他的瀏覽器,它的逆轉 – 2011-06-07 12:00:17

+0

我並沒有說這是快.. $$只是一個別名,我不認爲處理該別名的時間是相當可觀的http://jsperf.com/ff4-mootools-slick -test/3你可以使用'$$'而不用擔心性能..你的第二點是真實的,瀏覽器更容易找到更具體的選擇器,但這並不意味着使用'$$'更慢..除此之外我已經使用'$'和'getChildren'增加了新的考驗,這是最快的(除了IE)..最後的問題已經寫在標題和標籤XD「mootools的」,但我已經學到了從你的評論Thxs乾杯幾件事! – pleasedontbelong 2011-06-07 12:20:38

+0

給我所知,''$$現在是令人難以接受的,沮喪的最佳實踐(就像任何一個得到了在1.3棄用其他基於$結構的),它被保存在舊式的緣故 - 你在mootools-core中找不到$$的單個調用(但它仍在mootools-more中)。真正的戲劇** IS **在像IE這樣的瀏覽器中表現不佳,Slick可以像getElementsByClassName和querySelectorAll一樣使用快捷鍵。無論如何,對於新一代瀏覽器來說,選擇器速度被認爲是「足夠高」的。 – 2011-06-07 12:42:55

3
var ids = document.getElements("ul li a.item").get("id"); 
console.log(ids); // ["10", "11", "12"] 
+0

有趣... :) – Nicekiwi 2011-06-22 04:03:01