我需要浏览一个页面并用这个替换或插入每个“a”链接:
target='_self'
我的问题是,我应该为此使用正则表达式、方法 find() 还是其他方法?我对 js 真的很陌生,所以我仍在尝试找出许多不同的方法或可能性。
欢迎任何建议或提示。
谢谢
我需要浏览一个页面并用这个替换或插入每个“a”链接:
target='_self'
我的问题是,我应该为此使用正则表达式、方法 find() 还是其他方法?我对 js 真的很陌生,所以我仍在尝试找出许多不同的方法或可能性。
欢迎任何建议或提示。
谢谢
如果使用 jQuery:
$('a').each(function(){ $(this).attr("target", "_self"); });
没有:
var allAs = document.getElementsByTagName("a");
for(var i=0;i<allAs.length;i++){
allAs[i].target = "_self";
}
就像是:
var anchors = document.getElementsByTagName('a');
for (var i = 0; i < anchors.length; i++) {
anchors[i].setAttribute('target', '_self');
}
更新:
w3c 建议在属性可用时直接访问它(http://www.quirksmode.org/dom/w3c_core.html#attributes)所以最好的方法是:
anchors[i].target = '_self';
正则表达式将是一种过度杀戮,并且对于 JS - 初学者和专业人士来说有点困难 ;-)
对于普通的 JS。
按照 Pointy 的建议使用
var items = document.getElementsByTagName("a"); //gets all a's
for(var idx = 0 ; idx <items.length; idx++)
{
items[idx].target = "_self"; // sets for each a a target
}
希望能帮助到你。
使用 jQuery:
$('a').attr('target','_self');
使用纯 JavaScript:
var links = document.getElementsByTagName('a');
for(var i=0; i<links.length; i++) {
links[i].setAttribute('target', '_self'); // or links[i].target = '_self';
}