【发布时间】:2019-12-07 00:38:16
【问题描述】:
我正在寻找一种方法来使页面上的所有链接在新标签页中打开。但这应该只适用于块内的链接。
这是用来查找页面上所有块的 sn-p。
jQuery.fn.PageBlocks = function() {
$("*").filter(function(index) {
var $this = $(this);
var tagName = $this.prop("tagName").toLowerCase();
return $this.css("display") == 'block' || tagName == 'div';
});
}
现在我想在应该修改链接的target 属性的函数中使用此代码。
$(document).ready(function(){
var res = $(document).PageBlocks();
$.each(res, function(index, val) {
val.querySelectorAll('a').attr("target", "_blank");
});
});
看来我做错了。我该如何正确地制作它? 谢谢。
【问题讨论】:
-
什么是“块”?为什么
jQuery.fn.PageBlocks?.attr()是 jQuery 的方法,而不是NodeList的方法(document.querySelectorAll()的返回值 -
"Any div wtih cutom class name" - 为什么不使用这个自定义类而不是获取 DOM 中的每个元素? ->
$(".myBlockElement:visibile") -
我还是会选择
$("div:visible a").attr("target", "_blank") -
请提供html
-
@tuhin47 ,这是布局。
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>HTML5</title> <!--[if IE]> <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> <![endif]--> </head><body><div class="MyBlock"><a href="http:\\goo.me">Link</a><br> </div><script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script><script>$(document).ready(funct... </script></body></html>
标签: javascript jquery replace hyperlink