0

我需要浏览一个页面并用这个替换或插入每个“a”链接:

target='_self' 

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

欢迎任何建议或提示。

谢谢

4

5 回答 5

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"; 
}
于 2013-02-14T15:25:12.397 回答
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';
于 2013-02-14T15:28:06.977 回答
1

有一个 javascript 函数document.getElementByTagName()可让您定位诸如“a”之类的元素。请参阅此处了解如何使用它。

编辑:

这可以使用另一个功能来跟进setAttribute,你可以去这里看看如何使用。

于 2013-02-14T15:26:53.167 回答
1

正则表达式将是一种过度杀戮,并且对于 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
}

希望能帮助到你。

于 2013-02-14T15:31:19.273 回答
-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';
}
于 2013-02-14T15:26:06.220 回答