带有主题标签的超链接不会在新标签页中打开

Hyperlink with hashtag do not open in new tab

我正在使用此代码在新标签页中打开所有网址。 但我希望带#的url不要在新标签页中打开。例如:

jQuery("a").attr("target", "_blank");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<a href="#">content</a>
<a href="#contact">Contact</a>

谢谢

你可以检查工作 fiddle jsfiddle.net/bharatsing/t0fkzL5p/

$("a").click(function(){
    var href=$(this).attr("href");
  if(href!="" && href!="#"){
    $(this).attr("target", "_blank");
  }
  else{
    return false;
  }
});

您可以在附加 _blank 之前检查 href 属性值。

jQuery("a").attr("target", function() {
  if ($(this).attr('href') != '#') {
    $(this).attr('target', '_blank');
  }
});

在上面的代码中,我们检查 href 值,如果是 # 则忽略它,否则将 _blank 值附加到元素目标。

Demo


如果您想忽略 href# 开始的所有 a 标签,您可以执行类似

的操作
jQuery("a").attr("target", function() {
  if ($(this).attr('href')[0] != '#') { //checks for the first char, if #, ignore
    return '_blank';
  }
});

Demo