2015-11-17 24 views
1

我正在處理腳本之一,需要將標記中的值用於標記,我需要使用純Javascript來完成此操作。我有類似的jQuery代碼可用,但我無法成功完成Javascript一個。 我的jQuery代碼從前5個標籤中獲取「id」,並使用純javascript在輸出中用逗號分隔它們

var arr1st3 = $('article:lt(3)').map(function() { 
    return this.id.replace(/[^\d]/g, ''); 
}).get(); 
console.log(arr1st3); 

下面是測試URL http://jsfiddle.net/0mvjbkhs/5/

我想有JavaScript函數將在輸出返回值一樣[ '123456', '7896669',「1147777 「]

任何幫助將是非常讚賞

回答

1

純JavaScript版本將是:

var arr2st3 = [].map.call(document.querySelectorAll('article:nth-child(-n+4)'), function(el) { 
    return el.id.replace(/[^\d]/g, ''); 
}); 

非常相似。您只需使用原生Array.prototype.maparticle:nth-child(-n+4) CSS選擇器來選擇元素。

演示:http://jsfiddle.net/0mvjbkhs/6/

+0

如果你打算純JS,你應該總讓一個ES6版本 –

+0

這是工作在domready中,但是@dfsq可以請指教這是否會表現得同樣好所有的瀏覽器?或者像斯特林提到的那樣會有什麼限制? –

+0

這裏是DOMContentLoaded版本(jQuery就緒事件的純模擬)http://jsfiddle.net/0mvjbkhs/7/。對於IE <9,您應該使用'window.onload = function(){...}'代替。映射代碼無處不在,無處不在。 Sterling對ES6提到的僅僅是另一種語法(僅由現代瀏覽器支持)。 – dfsq

相關問題