1

特定のテキストを含むタグのインデックスを取得したいのですが。したがって、Click Meをテキストとして含むリンクが10個ある場合、2番目のリンクをクリックすると、2個になります。

JSfiddle

$(document).ready( function() {
  $('a').click(function () {
      if ($(this).text() != ""){
            var index = $("a").text().index(this);
            alert (index + 1);
      }
  });
});

HTMLコードの例

<a href="#">Click Me</a><br /><Br />

<a href="#">Different</a><br /><Br />

<a href="#">Click Me</a><br /><Br />

<div>
<a href="#">Click Me</a><br /><Br />
    <div>
    <a href="#">Click Me</a><br /><Br />
    <a href="#">Different</a><br /><Br />
    </div>
</div>

<ul>
    <li><a href="#">Click Me</a></li>
    <li><a href="#">Click Me</a></li>
    <li><a href="#">Click Me</a></li>
    <li><a href="#">Click Me</a></li>
</ul>

<a href="#">Different</a><br /><Br />
4

4 に答える 4

1

私があなたを正しく理解しているなら、あなたが望むのは次のとおりです。

ユーザーがテキスト値「First」のリンクをクリックすると、同じテキスト値を含むサイト上のすべてのリンクがチェックされ、「First」テキストのすべてのリンクのコレクション全体で現在クリックされているリンクのインデックスが返されます。価値。

その場合は、jQuery:contains()セレクターの使用を検討する必要があります。例については、このjsfiddleを参照してください:http://jsfiddle.net/PvwFZ/3/

平等を得る(そして含むだけではない):http://jsfiddle.net/PvwFZ/10/

于 2012-07-23T13:18:18.767 に答える
0

.text()ノードのテキストを返すため、チェーンできません。次のように、インデックスを個別にフェッチする必要があります。

$('a').click(function () {
  var $this = $(this),
      text = $this.text();
  var index;

  if (text !== ""){
        index = $('a').index(this);
        alert (index + 1);
  }
});
于 2012-07-23T13:13:43.817 に答える
0

あなたがこのようにメンターするかどうかわからない-http://jsfiddle.net/4MvJU/

インデックスを取得してアラートを出し、現在の要素に追加します。

text()が要素のテキストを返すので、それを行うことはできません。

于 2012-07-23T13:14:27.787 に答える
0

「:contains」を使用すると、特定のテキスト値を含むすべての要素で構成されるjQueryオブジェクトを生成できます。

$('a').click(function () {
  var text = $(this).text();
  alert($('a:contains(' + text + ')').index(this) + 1);
});​

デモ

于 2012-07-23T13:43:13.613 に答える