在使用多个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
代码一起使用?
答案 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')