Salman Virk
Salman Virk

Reputation: 12307

How to extract text from Link in Javascript?

I have following string:

<a href="http://stackoverflow.com" target="_blank">StackOverFlow</a>

How can I extract text (i.e. StackOverFlow) from the string?

Upvotes: 0

Views: 3281

Answers (4)

Prusse
Prusse

Reputation: 4315

window.onload = function(){
    var text = '<a href="http://stackoverflow.com" target="_blank">StackOverFlow</a>';
    var parser = null;
    if (window.DOMParser){
        parser = new DOMParser();
        xmlDoc = parser.parseFromString(text,"text/xml");
    } else{ // Internet Explorer
        xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
        xmlDoc.async="false";
        xmlDoc.loadXML(text); 
    }
    var a = xmlDoc.childNodes[0];
    alert(a.childNodes[0].nodeValue);
}

http://www.w3schools.com/dom/dom_parser.asp

Upvotes: 0

Senad Meškin
Senad Meškin

Reputation: 13756

document.getElementById('link_id').innerHTML;

That was my solution before, user added more description but this is solution for current description

var s = '<a href="http://stackoverflow.com" target="_blank">StackOverFlow</a>';
var text = s.match(/<a[^\b>]+>(.+)[\<]\/a>/)[1];

Upvotes: 2

Felix Kling
Felix Kling

Reputation: 816302

No regex required:

var t_ = document.createElement('div'),
    a;
t_.innerHTML = htmlString; // <- string containing your HTML
a = t_.children[0];

var text = a.textContent || a.innerText; // W3C vs IE

Actually parsing HTML with regular expressions is evil. Although it might be easy to come up with an expression for your specific case, it might not work well for a different string.

Upvotes: 2

James Allardice
James Allardice

Reputation: 165941

If you can add an id to your link like so: `StackOverFlow" then you can get the text like this:

document.getElementById('linkID').innerHTML;

Upvotes: 0

Related Questions