将目标空白添加到JavaScript生成的链接中


Add target blank to JavaScript generated link

脚本在php文件中使用,它会显示一个链接的alexa等级图像:

<script type="text/javascript" src="http://xslt.alexa.com/site_stats/js/t/a?url=x-invest.net"></script>

这就是结果:

<a class="AlexaSiteStatsWidget" href="http://www.alexa.com/data/details/main?url=http://xxx">
<img alt="Alexa Certified Site Stats for xxx" src="http://xsltcache.alexa.com/site_stats/gif/t/a/eC1pbnZlc3QubmV0/s.gif" border="0">
</a>

我想在<一个>标签。这是我已经尝试过的:

<script>document.getElementsByClassName("AlexaSiteStatsWidget").setAttribute('target', '_blank');</script>
<script>$('#AlexaSiteStatsWidget a').attr('target', '_blank');</script> 

但它们都不起作用。

只需更改此项:-

<script>document.getElementsByClassName("AlexaSiteStatsWidget").setAttribute("target","_blank");</script>

对此:-

<script>document.getElementsByClassName("AlexaSiteStatsWidget")[0].setAttribute("target","_blank");</script>

并删除这行:-

<script>$('#AlexaSiteStatsWidget a').attr('target', '_blank');</script> 

我不知道它是否有效,但如果您在<正文>'s<a>s的元素如下:

<script type="text/javascript">
 document.querySelector("body a.AlexaSiteStatsWidget").addEventListener("click", function() {
  this.setAttribute("target", "_blank");
 });
</script>

我没有测试它,但我想它让你知道我想说什么

getElementsByClassName返回一个包含所有节点(html元素)的数组,并提供类名。如果指定类只有一个html元素,它仍然会返回一个包含一个节点的数组。

如果您想将其应用于一个<a>元素,请使用:

<script>
document.getElementsByClassName("AlexaSiteStatsWidget")[0].setAttribute('target', '_blank');
</script>

如果要将其应用于多个<a>元素:

<script>
var alexaArray = document.getElementsByClassName("AlexaSiteStatsWidget");
for(var i = 0; i < alexaArray.length; i++){
   alexaArray[i].setAttribute('target', '_blank');
}
</script>