在新标签页中打开所有链接,除了 TOC

我想在新标签中打开我们文章正文中的所有链接,除了我们目录中的任何哈希链接。


我确定这很简单,但我不确定如何指定不包含 TOC


用于在新选项卡中打开文章主要内容中的链接的 Javascript:


$(".single-post .entry-content p a").attr("target","_blank");


示例文章 HTML


<h2>Jump Ahead!</h2>

<a href="#one">Header One</a>

<a href="#two">Header Two</a>



<h2><a name="one"></a>Header One</h2>


This is an example of a link that should open in a new tab <a href="https://example.com">New Tab</a>.


<h2><a name="two"></a>header Two</h2>


关于如何不让 #one 和 #two 打开新标签但在新标签中打开 example.com 的任何想法?


噜噜哒
浏览 117回答 2
2回答

智慧大石

编辑:正如您现在提到的,您的 TOC 链接都有一个href以哈希 (#) 开头,因此:$("a").each(function() {&nbsp; //if the link is not a TOC link&nbsp; if($(this).attr('href') && !$(this).attr('href').startsWith('#')) {&nbsp; &nbsp; $(this).attr('target', '_blank');&nbsp; }});<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script><h2>Jump Ahead!</h2><a href="#one">Header One</a><a href="#two">Header Two</a><h2><a name="one"></a>Header One</h2>This is an example of a link that should open in a new tab <a href="https://example.com" class="blank">New Tab</a>.<h2><a name="two"></a>header Two</h2>在这个片段中,我遍历所有<a>标签并检查它们的 href 是否以#.&nbsp;如果没有,我正在添加target _blank属性。或者,如果所有 TOC 链接都在一个<h2>标签内,您可以使用以下选择器来定位所有没有<h2>作为父标签的锚标签:$("a:not(h2&nbsp;a)").attr("target",&nbsp;"_blank");

慕容森

新选项卡或窗口(取决于您的浏览器设置)包括这个参数我你锚标签(<a href...>)target="blank"所以这样写<h2>Jump Ahead!</h2><a href="#one">Header One</a><a href="#two">Header Two</a><h2><a name="one"></a>Header One</h2>This is an example of a link that should open in a new tab <a href="https://example.com" target="blank">New Tab</a>.<h2><a name="two"></a>header Two</h2>
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript