查找并替换DOM中所有“a”目标的值?

时间:2013-02-14 15:24:00

标签: javascript dom

我需要浏览一个页面并替换或插入每个单独的' a'与此相关:

target='_self' 

我的问题是,我应该使用正则表达式,方法find()还是其他方法?我对js真的很陌生,所以我仍然试图找出许多不同的方法或可能性。

欢迎提出任何建议或提示。

由于

5 个答案:

答案 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';
}