2013-07-15 69 views
2

前段時間看到這個代碼,我正打算列出一個網站的HREFs,但現在我想將其過濾篩選器警報的Javascript,我如何

var arr = [], l = document.links; 
for(var i=0; i<l.length; i++) { 
    arr.push(l[i].href); 
} 
alert(arr); 

我需要這個代碼顯示鏈接只包含其中的某些文本

例如,只顯示警報中的鏈接,其中包含href ....?

day=20, ?day=22, and ?day=25

我想如果.push前加一個,但是毫無效果,只顯示一個空白警報:(

最後一件事,如果警報的地方,我希望它在新標籤中打開每一個環節,有人可以給我方向或者最簡單的方法;)

+0

你可以用'if'來顯示你的嘗試嗎?有可能是一個容易修復的錯誤。 –

+0

你可能會想使用'if(l [i] .href.indexOf(「TEXT HERE」)){'某種類型,但是你應該顯示你的嘗試 – Ian

+0

我試圖加入 if(/?day = 20 /?day = 22 /?day = 25 /){ 之前的arr.push ... – user2582318

回答

0

在現代瀏覽器中,你可以這樣做:

var links = document.querySelectorAll('a[href*="day"]'); 

這會給你的鏈接元素的節點列表包含day我在href。然後你可以像這樣過濾得到一個數組中的hrefs

var hrefs = Array.prototype.map.call(links, function(link){ 
    return link.href; 
}); 
+0

不要在鉻工作:( – user2582318

+0

有一個錯字是'prototype'。對我來說工作正常,檢查這裏http://jsbin.com/axisih/1/edit – elclanrs

+0

哇,現在像一個魅力!!非常感謝你;) – user2582318