【发布时间】:2017-03-09 16:12:16
【问题描述】:
我对 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>
当页面中只有一个标签时...
请告诉我我做错了什么......
谢谢:)
【问题讨论】:
-
您已将代码嵌入到外部 jQuery 脚本中。你需要两个脚本。一个用于获取 jQuery,另一个用于您的代码。
<script src="static/jquery-3.1.1.js"></script> <script> /* your code */ </script> -
第二个代码块应该适用于单个元素,但如果您将脚本放在页面顶部则不会,这将使其在加载任何元素之前运行。
-
而且不需要 jQuery:
for (let link of document.links) { link.target = "_blank" } -
非常感谢您...您似乎对html有很多了解...您是否偶然知道为什么当我使用firefox / chrome检查页面并寻找a的目标时( $('a').target 在控制台中)它仍然说未定义......?我应该使用也许 id 的 att 来查看它吗...?
-
因为
$("a")让jQuery 获取所有<a>元素,但它返回一个通常称为“jQuery 对象”的容器对象。该对象本身没有target属性。它通过数字索引存储每个元素,很像一个数组,所以找到的第一个元素在索引0,第二个在1,依此类推。所以如果你做了$("a")[0].target,你会得到第一个元素的.target。
标签: javascript jquery html attributes tags