2010-10-06 13 views
17

może ktoś mi powiedzieć sposób, aby uzyskać wszystkie atrybuty href (linki) w witrynie za pomocą javascript? Jeśli mógłbyś dać mi przykład kodu, będę najbardziej wdzięczny.uzyskać wszystkie atrybuty href strony internetowej

+2

Przedtem zadawałeś bardzo podobne pytanie i wydaje się, że ma bardzo podobną odpowiedź: http://stackoverflow.com/questions/3824208/get-all-the-urls-in-a-web-site- używając-javascript –

Odpowiedz

41

Można użyć document.links dostać kotwice, a potem tylko pętlę przez chwytając href coś takiego:

var arr = [], l = document.links; 
for(var i=0; i<l.length; i++) { 
    arr.push(l[i].href); 
} 
//arr is now an array of all the href attributes from the anchors in the page 

You can test it out here, można je filtrować więcej przed wywołaniem .push() na tablicy, jeśli chciał, ale taka jest koncepcja chwytania linków i przechodzenia przez nie.

+1

jak mogę uzyskać linki na stronie internetowej bez jej ładowania? (w zasadzie to, czego chcę, to jest to, że użytkownik wprowadza adres URL i chcę załadować wszystkie dostępne linki w tym adresie URL). Czy możesz mi powiedzieć, jak to osiągnąć? – netha

+0

@netha - To zupełnie inne pytanie, czy mówisz o za pośrednictwem AJAX lub po stronie serwera? Czy korzystasz z jakichkolwiek frameworków? –

+1

Nie Nie używam żadnej ramki działa. Chciałbym to zrobić na stronie klienta (myślę, że serwer położy więcej obciążenia na serwer, ponieważ chcę wykonać pewne operacje na tych linkach). Potrzebuję tylko tego sposobu. Będę nawet gotowy do nauki ram, jeśli wykona to zadanie. Jak mogę to osiągnąć? – netha

8

A oto jeden sposób z getElementsByTagName:

var links = document.getElementsByTagName('a'); 

for(var i = 0; i< links.length; i++){ 
    alert(links[i].href); 
} 
0

Zastosowanie:

var anchors = document.getElementsByTagName('a'); 
var hrefs = []; 
for(var i=0; i < anchors.length; i++){ 
    if(1/* add filtering here*/) 
    hrefs.push(anchors[i].href); 
} 
1

Jeden prosty sposób Jednym ze sposobów jest wykorzystanie funkcji document.getElementsByTagName. Dla np.

document.getElementsByTagName('a'); 

Aktualizacja

Jest znacznie prostszy sposób. Zobacz @Nick Craver's answer.

+0

Twierdzę, że nie jest to najprostsze :) –

+0

@Nick: Punkt wzięty. Zmiana na "Jeden prosty". :) –

Powiązane problemy