我需要浏览一个页面并替换或插入每个单独的' a'与此相关:
target='_self'
我的问题是,我应该使用正则表达式,方法find()还是其他方法?我对js真的很陌生,所以我仍然试图找出许多不同的方法或可能性。
欢迎提出任何建议或提示。
由于
答案 0 :(得分:3)
如果使用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";
}
答案 1 :(得分:2)
类似的东西:
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';
答案 2 :(得分:1)
有一个javascript函数document.getElementByTagName()
,可以让你定位像'a'这样的元素。有关如何使用它,请参阅here。
修改强>
可以使用另一个函数setAttribute
跟进,您可以here查看如何使用。
答案 3 :(得分:1)
正则表达式会过度杀戮,对JS来说有点困难 - 初学者和PROS; - )
for plain 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
}
希望它有所帮助。
答案 4 :(得分:-1)
使用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';
}