Reputation: 6307
I'm messing around with jQuery and ran in to a problem I can't seem to solve. I know it's possible with jQuery, but can't find a proper example to work off of. I have a page with a couple regular links with the attribute/value target="_blank"
added to it.
What's the best approach with jQuery/JavaScript to remove that value from every link on the page?
Upvotes: 21
Views: 38015
Reputation: 433
A bit late to the party, I know! Anyway, here's another solution:
document.addEventListener('click', e => e.target.removeAttribute('target'));
This line does not immediately remove the target
from every link, but it runs only when a user interacts with one. This has two perks:
forEach
.Upvotes: 2
Reputation: 490263
This should do it with jQuery...
$('a[target="_blank"]').removeAttr('target');
With a modern browser...
Array.from(document.querySelectorAll('a[target="_blank"]'))
.forEach(link => link.removeAttribute('target'));
With an older browser such as earlier IEs...
var links = document.links, i, length;
for (i = 0, length = links.length; i < length; i++) {
links[i].target == '_blank' && links[i].removeAttribute('target');
}
Upvotes: 50