我想创建一个JavaScript,在每个链接中放置属性target="_blank"
,以便链接在新标签页中打开。我就这样做了:
function open_links_in_new_tabs() {
var links = document.documentElement.getElementsByTagName( "a" );
for(var link in links) {
link.setAttribute("target", "_blank");
}
}
window.onload = function() { open_links_in_new_tabs(); }
但是,这不起作用。你知道错误在哪里吗?
谢谢,
伊万
答案 0 :(得分:5)
foo in bar
对象NodeList
语法doesn't work(a.k.a。“document.getElementsByTagName
返回的内容”)。
使用普通的for (var i = 0; i < links.length; i++)
(当然,使用links[i]
代替link
)循环,它应该有效。
答案 1 :(得分:0)
你在这里使用for... in
循环略有错误。试试这个:
for(var link in links) {
links[link].setAttribute("target", "_blank");
}
编辑虽然我的示例适用于这种情况,但Boldewyn的正确之处在于,如果您的脚本不对元素进行操作,这将产生意外结果。
答案 2 :(得分:0)
我在stackoverflow上对此进行了测试,它似乎适用于所有链接:)
var links = document.getElementsByTagName("a");
for(var i = 0; i < links.length; ++i) {
links[i].setAttribute('target', '_blank');
}
答案 3 :(得分:0)
为什么不使用jQuery,如果你想使用jquery那么这里是代码:
$(document).ready(function(){
$('a').attr("target","_blank");
})