Javascript在新窗口中的多个Div中打开链接

时间:2014-01-13 21:31:29

标签: javascript html css

在使用多个div标记与ids不同时,我无法使用某些代码。

此代码位于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 -->

我需要在同一个divs页面上使用不同IDs的多个html代码,但document.getElementById只允许一个div ID

我尝试多次为每个div重复上面的代码,但它只适用于最后一次迭代。

是否有人知道如何使代码与多个div不同的ids代码一起使用?

3 个答案:

答案 0 :(得分:1)

变化

var links = document.getElementById('article').getElementsByTagName('a');

var links = document.getElementsByClassName('your-class');

答案 1 :(得分:0)

替换这部分:

var links = document.querySelectorAll("#article a");

使用:

var links = document.getElementById('article').getElementsByTagName('a');

这将导致节点中的所有标签都带有“article”id。

但如果您有多个文章节点,则最好在“class”属性中设置“article”,而不是设置为“id”。然后只需更改代码:

var links = document.querySelectorAll(".article a");

如果'a'标签位于第一级文章节点子节点中,您也可以这样做:

var links = document.querySelectorAll(".article>a");

答案 2 :(得分:0)

对于多个div,您需要添加类名,例如“article”:

<div class="article"><a>one</a></div>
<div class="article"><a>two</a></div>

之后你可以通过下一个方式获取元素:

document.querySelectorAll('div.article>a')