首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在jQuery中查找作为超链接的链接

在jQuery中查找作为超链接的链接
EN

Stack Overflow用户
提问于 2010-04-21 14:57:13
回答 2查看 189关注 0票数 0

我正在尝试采取一个链接,无论是点击或悬停在能够抓取属性href,并告诉它是否是一个超级链接。此外,我希望它能够告诉我,如果这是一个超级链接到我自己的网站。再加上其他各种过滤器。

这样做的主要目的是,当一个内部链接被点击时,它会告诉ajax抓取内容,我的许多链接都是生成的(通过wordpress),所以我不能对它们进行太多修改。这样做的另一个目的是,我还可以在新窗口中打开所有外部链接。

我有一个解决方案,可以在一个简单的测试页面上工作,但当我把它放入一个工作页面时,它就会崩溃。我知道我可能让事情变得更难了。

以下是我的代码

代码语言:javascript
运行
复制
$(function(){
   $('a').live('click', function(){
      var x = $(this).attr('href');

      $(this).parent('div').append('<div id="test">' + x +'</div>');
      $('#test:contains("http")').css('color', 'red');
      $('#test:contains("sitename")').css('color', 'black');
      $('#test:contains("admin")').css('color', 'red');
      if($('#test').css('color') == 'red'){

         alert('external link');
         $('#test').remove();
         return true; 

      }else{

         alert('external link');
         $('#test').remove();
         return false;

      }
   });
});

感谢您的帮助

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-04-21 15:07:04

代码语言:javascript
运行
复制
$('a').live('click', function(){
   var href = $(this).attr('href');

   if(/http:\/\//.test(href) || /admin/.test(href)){
      //alert('external link');
      $(this).attr('target', '_blank');
      return(true);
   }

   if(/sitename/.test(href)){
      //alert('internal link');
      $.ajax({});
      return(false);
   }       
}

我想这是一个更好的方法。应该可以工作,但未经测试。正则表达式可以/也应该进行微调。

票数 1
EN

Stack Overflow用户

发布于 2010-04-21 15:31:56

您还可以使用jQuery选择器语法(http://api.jquery.com/attribute-starts-with-selector/):

代码语言:javascript
运行
复制
$('a[href^=http://], a[href^=/admin/]').live('click', function(){});
$('a[href^=/sitename/]').live('click', function(){});

如果你检查选择器API,你会发现更多的选择器(例如,以X结尾,包含X,等等)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2680878

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档