Javascript Java脚本在新窗口中打开多个div内的链接
当使用多个Javascript Java脚本在新窗口中打开多个div内的链接,javascript,html,css,Javascript,Html,Css,当使用多个div标记和不同的id时,我很难让一些代码正常工作 此代码位于html文档的头部,对于单个divid,可以正常工作: <!-- Start External Links in New Window Requires div id article --> <script type='text/javascript'>//<![CDATA[ window.onload = function () { var links = doc
div
标记和不同的id
时,我很难让一些代码正常工作
此代码位于html
文档的头部,对于单个div
id
,可以正常工作:
<!-- Start External Links in New Window Requires div id article -->
<script type='text/javascript'>//<![CDATA[
window.onload = function () {
var links = document.getElementById('article').getElementsByTagName('a');
for (var i = 0; i < links.length; i++) {
links[i].setAttribute('target', '_blank');}
}
//]]>
</script>
<!-- End of External Links -->
//
我需要它来处理同一html
页面上具有不同ID
的多个div
标记,但是文档中的getElementById
只允许一个div ID
我尝试对每个div
多次重复上面的代码,但它只适用于最后一次迭代
有人知道如何使代码与具有不同ID的多个div
标记一起工作吗?更改
var links = document.getElementById('article').getElementsByTagName('a');
到
替换此部分:
var links = document.querySelectorAll("#article a");
与:
这将导致节点中具有“article”id的所有a标记
但是如果您有多个项目节点,那么最好在“class”属性中设置“article”,而不是设置为“id”。然后简单地更改代码,如下所示:
var links = document.querySelectorAll(".article a");
如果“a”标记位于文章节点childnodes的第一级,您也可以执行以下操作:
var links = document.querySelectorAll(".article>a");
对于多个div,您需要添加类名,例如“article”:
看看如何使用css类。也许可以看看。你的HTML是什么样子的?我无法重现此问题:@412“我尝试对每个div重复上述代码多次”。似乎有效”:我以类名结束,现在它工作得很好。如果在class=“external”的代码中运行搜索,您可以看到我使用的各个div id。下面是一个示例html页面:我是否仍然需要.getElementsByTagName('a');?我将完全按照您给我的方式进行尝试。我更希望通过CSS类而不是多个div来完成此操作,因此非常感谢;-)好的,您可以使用.getElementsByTagName('a');为了缩小搜索范围,如果您计划在主播以外的其他元素上使用“您的类”,请感谢您的帮助-最终有效的方法是:var links=document.querySelectorAll(“.article a”);谢谢-您提供的倒数第二个选项非常有效这使我不用手动将target=blank应用到一个近3000页的网站上!如果将来有人看到这篇文章并会从解决方案中受益-我使用class=“external“还有Mehran的建议——这里有一个使用新代码的示例页面:谢谢——这很有效——我最后选择了var links=document.queryselectoral(“.article a”);
var links = document.querySelectorAll(".article a");
var links = document.querySelectorAll(".article>a");
<div class="article"><a>one</a></div>
<div class="article"><a>two</a></div>
document.querySelectorAll('div.article>a')