http javaScript set属性默认为所有标签

时间:2017-03-09 16:12:17

标签: javascript jquery html attributes tags

我对HTML很陌生,只是想弄明白......

我正在尝试为标记设置属性,更具体地说是目标属性,以便网页中的所有链接都会在不同的标签页中打开...

我遇到过jQuery函数并尝试实现它但没有成功......

我的脚本标记如下:

<script src="static/jquery-3.1.1.js">
    $(document).ready(function() {
        $('a').target = "_blank"
        $("a").attr("target", "_blank");
    });

    $('a').target = "_blank"
</script>

当然,jquery文件位于静态目录下的同一目录中,如上所述......

我也尝试了以下内容:

<script>
    var elems = document.body.getElementsByTagName("a")[0];
    elems.setAttribute("target","_blank");
</script>

当页面中只有一个标签时...

请告诉我我做错了什么......

感谢:)

4 个答案:

答案 0 :(得分:1)

将属性设置为网页的所有元素的正确方法是遍历所有元素并设置属性,如下所示:

var elems = document.body.getElementsByTagName("a");
for(var i = 0; i < elems.length; i++)
{
  elems[i].setAttribute("target","_blank");
}

如果使用jQuery,设置属性的函数是 $(selector).attr(attribute_name,value)

示例:

$('a').attr("target","_blank");

答案 1 :(得分:0)

首先,您的代码应该是:

$(document).ready(function() {
    $("a").attr("target", "_blank");
});

它确实有效。你可以在这个页面上试试。我不知道你正在测试哪个页面,但我猜你的代码不起作用的原因是在你的代码执行后生成了一些链接。您可以更改以下代码以避免此问题。

$(document).ready(function() {
    setInterval(function(){
       $("a").attr("target", "_blank");
    },200);
});

您还可以添加一些代码来提高效率。

答案 2 :(得分:0)

您实际上不必修改html,可以只为每个链接添加一个点击处理程序。

$(document).on('click', 'a', function(e) {
  e.preventDefault();
  window.open(this.href);
});

答案 3 :(得分:0)

您的脚本中存在一些语法错误,

中的代码正确无误
<script src="static/jquery-3.1.1.js"></script>
<script>
    $(document).ready(function() {
        $("a").attr("target", "_blank");
    });
</script>