jQuery如何一起使用index()和text()?

时间:2012-07-23 13:10:25

标签: jquery

我想要获取具有特定文本的标记的索引。因此,如果我有10个链接与Click Me作为文本,如果我点击第二个,我想要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 个答案:

答案 0 :(得分:1)

如果我理解你的话,你想要的是以下内容:

如果用户点击文本值为“First”的链接,它将检查您网站上包含相同文本值的所有链接,并返回所有链接的当前点击链接的索引“第一个“文本值。

如果是这种情况,您应该考虑使用jQuery :contains()选择器。请参阅此jsfiddle以获取示例:http://jsfiddle.net/PvwFZ/3/

获得平等(而不仅仅是包含):http://jsfiddle.net/PvwFZ/10/

答案 1 :(得分:0)

.text()返回节点的文本,因此不可链接。您应该单独获取索引,如下所示:

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

  if (text !== ""){
        index = $('a').index(this);
        alert (index + 1);
  }
});

答案 2 :(得分:0)

不确定你是否这样 - http://jsfiddle.net/4MvJU/

它将获取索引,然后提醒它并将其添加到当前元素。

你不能这样做因为text()正在返回元素的文本。

答案 3 :(得分:0)

通过使用“:contains”,您可以生成一个jQuery对象,该对象由包含特定文本值的所有元素组成。

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

Demo