jquery - 如何使用 jQuery 非选择器来选择相对 URL?

标签 jquery google-analytics selector analytics

我正在编写一个小 jQuery 脚本,将 Google Analytics pageTracker onclick 数据添加到论坛上的所有相关 URL,从而允许我跟踪对外部站点的点击。

我不想将 onclick 添加到 forum.sitename 或 sitename 上的内部链接,也不想将它们添加到任何标记为 # 或以/开头的 href。我的下面的脚本运行良好,但有一个小问题!

论坛的所有 URL 都是相对的,并且不以/开头。我似乎无法改变这一点,因此需要修改下面的 jQuery 以防止它像当前那样将 onclick 添加到链接中。

我想要做的是编写一个 .not() 函数,例如 .not("[href!^=http") ,以防止 jQuery 将 onclick 添加到任何不以 http 开头的 href。然而,.not() 似乎不支持这一点。

我是 jQuery 新手,无法弄清楚这一点。任何指示将不胜感激。

$(document).ready(function(){
     // Get URL from a href
     var URL = $("a").attr('href');

 // Add pageTracker data for GA tracking
 $("a")
 .not("[href^=#]")
 .not("[href^=http://forum.sitename]")
 .not("[href^=http://www.sitename]")
 .attr("onclick","pageTracker._trackEvent('Outgoing_Links', 'Forum', " + URL + ");")
 ;

});

谢谢!

最佳答案

您可以像这样编写 not 选择器来获取 dohttp 开头,但包含“sitename.sitename”的链接。 com”:

$('a[href^=http]:not([href*="sitename.com"])')

You can play with an example here ,这使用基于字符串 :not() selector^= attribute starts-with selector您已经在使用 *= attribute contains eelector .

根据评论更新:

$(functon() {
  $('a[href^=http]:not([href*="sitename.com"])').click(function() {
    pageTracker._trackEvent('Outgoing_Links', 'Forum', this.href);
  });
});

关于jquery - 如何使用 jQuery 非选择器来选择相对 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2787651/

相关文章:

javascript - $(window).width() 没有正确给出视口(viewport)宽度

javascript - 按照 tab-index 的顺序循环 jQuery 选择

css - 通过 css 从 iframe 的父级中选择 iframe 的子级

java - Google Analytics GTM android 获取客户端 ID

php - Apache RewriteCond 防止无限循环

javascript - 添加 JavaScript 选择器

objective-c - 在 Swift 类中使用类型为 "Selector"的函数参数将使该函数对 Objective-C 不可用

javascript - 可以为 jquery.ajaxSetup() 设置范围吗?

javascript - 渲染:partial generates only one time on escape_javascript

javascript - Google Analytics 如何跟踪电子商务访问者的行为