2

これが私の問題です。サーバー側からPHPへのループで Web サイトのすべてのコンテンツを生成している Web サイトを編集していて、 jQueryを使用して Web サイトを操作するように求められます。

ここで問題となるのは、Web サイトに存在する多くのリンク タグにはID関連付けられていないということです。そのため、リンク タグの 1 つがクリックされると、いくつかのjQueryロジックが発生するという問題を解決するよう求められます。

私の場合、「すべて見る」というテキストのリンクタグがクリックされた場合。コードの実行を実行することになっていますが、どのように正確に記述すればよいでしょうか?

それは書くのと同じくらい簡単ですか:

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

それは機能していないように見えるからです。何か助けはありますか?

4

3 に答える 3

4

完全一致 forSee 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 に答える