我想要获取具有特定文本的标记的索引。因此,如果我有10个链接与Click Me作为文本,如果我点击第二个,我想要2.
$(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 />
答案 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)
答案 3 :(得分:0)
通过使用“:contains”,您可以生成一个jQuery对象,该对象由包含特定文本值的所有元素组成。
$('a').click(function () {
var text = $(this).text();
alert($('a:contains(' + text + ')').index(this) + 1);
});