Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用jQuery not选择器选择相对URL?_Jquery_Google Analytics_Selector_Analytics - Fatal编程技术网

如何使用jQuery not选择器选择相对URL?

如何使用jQuery not选择器选择相对URL?,jquery,google-analytics,selector,analytics,Jquery,Google Analytics,Selector,Analytics,我正在编写一个小jQuery脚本,将Google Analytics pageTracker onclick数据添加到我论坛上的所有相关URL中,使我能够跟踪外部站点的点击 我不想将onclick添加到forum.sitename或sitename上的内部链接,也不想将它们添加到任何标记为/或以/开头的HREF。我下面的脚本工作得很好,但有一个小问题 论坛的所有URL都是相对的,不以/开头。我似乎没有办法改变这一点,因此需要修改下面的jQuery,以防止它像当前一样向链接添加onclick 我想

我正在编写一个小jQuery脚本,将Google Analytics pageTracker onclick数据添加到我论坛上的所有相关URL中,使我能够跟踪外部站点的点击

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

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

我想做的是编写一个类似.not[href!^=http的.not函数,以防止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选择器来获取以http开头但不包含sitename.com的链接:

$('a[href^=http]:not([href*="sitename.com"])')
,这将使用基于字符串的和您已经使用的以及

根据评论更新:

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

谢谢,尼克。这对我不太管用。可能是因为我都是双重否定!添加。不是[href^=http]在我的脚本结果中,onclick被添加到相对URL,而不是绝对URL。有什么想法吗?@Matt-更新了答案,我不得不重新阅读这个问题:这应该会给你想要的,更新了显示这个的示例。非常好。谢谢,尼克!你让我开心了。@Matt-如果你都准备好了,请确保rk通过左边的复选标记帮助您解决问题的答案已被接受…如果仍然不太正确,请发表评论,我将帮助您进行更多调整:谢谢,尼克。我已经登录并投票支持您。我仍然坚持的一件事是将右href的值输入URL变量。目前,似乎只有use页面上第一个项目的URL,因此添加了onclick的每个项目都会添加相同的URL参数,这无助于跟踪。有什么办法可以解决吗?我想可能需要使用var URL=this.href;或者每个?非常感谢Matt
var regex = RegExp('^(?:f|ht)tps?://(?!' + location.hostname + ')');

$('a').filter(function(){
    // Filter-out internal links
    return regex.test(this.href);
}).click(function(){
    pageTracker._trackEvent('Outgoing_Links', 'Forum', this.href);
})