Reputation: 12307
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
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
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
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
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