2

这是我的问题。我正在编辑一个网站,该网站在从服务器端到PHP的循环中生成网站的所有内容,然后我被要求使用jQuery操作网站。

这里的问题是,网站上存在的许多链接标签ID与它们没有关联。所以我被要求解决一个问题,如果点击其中一个链接标签,就会发生一些jQuery逻辑。

就我而言,如果单击带有文本“查看全部”的链接标签。我应该执行一些代码执行,但我到底该怎么写呢?

是不是写得这么简单:

$("a:contains('See All')").click(function() {
  // do something
});

因为这似乎不起作用。有什么帮助吗?

4

3 回答 3

4

精确匹配See All

$("a")
     .filter(function() {   // apply filter() to for exact text matching
          return $(this).text() == 'See All';
     }).click(function(e) {
          // To prevent page reload you need .preventDefault()
          e.preventDefault();
          alert('hello');
     });

演示

检查包含See All(不完全匹配)

$("a").filter(function() {
    return $(this).text().match('See All'); // a little change here
}).click(function() {
    alert('hello');
});

或者只是使用:contains()

$('a:contains(See All)').on('click', function() {
   alert('Hello');
});

演示

一些额外的说明

如果您的链接在 DOM 就绪后生成,那么您需要尝试使用“.on”事件绑定,例如:

$('#container').on('click', 'a:contains(See All)', function() {
  alert('Hello');
});

如果客户端使用 jQuery v-1.7,请尝试“.delegate”事件,如下所示:

$('#container').delegate('a:contains(See All)', 'click', function() {
  alert('Hello');
});
于 2012-06-01T03:54:29.613 回答
1

您是否尝试过删除'in 'See All'

此外,要确保它不会将用户重定向到 中的链接href,请使用e.preventDefault()

$("a:contains(See All)").click(function(e) {
  e.preventDefault();
  // do something
});

http://jsfiddle.net/99LMh/

于 2012-06-01T03:54:47.210 回答
0

如何使用链接缩短服务(例如 Google 的https://goo.gl/,或点击推文的 clicktotweet.com,免费 5 次,之后付费)。使用缩短的链接。

这将跟踪链接被点击的次数。

现在你在找什么,不

于 2014-10-10T19:51:04.967 回答