DLiKS
DLiKS

Reputation: 1596

Find Links in HTML Document using Javascript/jQuery

This is a challenge for any Javascript/jQuery ninjas out there:

What is the best way (using aforementioned languages), to find all of the links in an HTML document and return them all?

In other words, a function that like this - findLinks(document.html.innerHTML) that would return all links found in that HTML.

Thanks,

DLiKS

Upvotes: 4

Views: 5072

Answers (4)

Igor Zinov'yev
Igor Zinov'yev

Reputation: 3706

It's either I don't understand the question, or it's not really that much of a challenge:

function findLinks(innerHTML){
    var fragment = document.createElement('div');
    fragment.innerHTML = innerHTML;

    var links = [];
    fragment.find('a').each(function(index, element){
        links.push($(element).attr('href'));
    });
    return links;
}

Upvotes: 0

karim79
karim79

Reputation: 342625

To get all hrefs from existing anchor elements, you can do the following, which will return them as an array:

var links = $("a").map(function() {
                return this.href;
            }).get();

If you just want to grab each anchor element and do something with them thereafter, you would just need to select them:

$("a").hide(); // or whatever

Upvotes: 2

gor
gor

Reputation: 1

I have a bookmarklet that finds all the hyperlinks and writes them to an HTML page:

javascript:ctDL=document.links;ctWI=open('','','width=400,height=300,scrollbars,resizable,menubar');ctDO=ctWI.document;ctDO.writeln('');for(ctI=0;%20ctI')}void(ctDO.close())

Upvotes: 0

Quentin
Quentin

Reputation: 943142

Well, you could fiddle around with a chunky library (and it might be a good idea to do that if you end up wanting to do interesting things to manipulate the results), but just to get the links I think I'd stick to DOM 0:

document.links

Upvotes: 7

Related Questions