2010-06-22 128 views
18

我想找到我的页面的第一个链接哪个url适合"AAA"(示例)。如何根据其href属性在页面中找到链接?

我第一次尝试获取与此HREF链接:

$('a[href$="AAA"]') 

然后塞莱茨第一个:

$('a[href$="AAA"]')[0] 

然后针对这个环节

$('a[href$="AAA"]')[0].attr("title"); 

的title属性但是,所有这些在每一步都会让我“未定义”。 如何做到这一点?

例主播:

<a href="contents/medias/images/news/news_test_big.jpg" title="Nouvelle réalisation en ligne 1 FR" target="_blank" class="imageLink"> 
+0

你能张贴实际的''标签中的一个样本? – Pointy 2010-06-22 12:38:33

+0

以下是其中一个链接:谢谢¨! – daviddarx 2010-06-22 12:40:13

+0

@daviddarx我已将示例添加到您的问题。 – 2010-06-22 12:44:24

回答

19

如何:

$("a[href='AAA']").first().attr("title") 
// or 
$("a[href='AAA']:first").attr("title") 

那就要看,如果你想在href等于 'AAA',包含它,开始/它结束。在这种情况下,您不会使用href=,而是使用href$=Neil's answer包含您可以使用的不同类型的测试。

如果你可以发布你的HTML代码,它也会有帮助。

+0

$(“a [href ='AAA']:first”)也可以工作 – 2010-06-22 12:40:05

+0

@neil:true,我将它添加到我的答案 – marcgg 2010-06-22 12:41:03

+0

我要试试,我会在几分钟后回来 – daviddarx 2010-06-22 12:54:11

3

假设您有一个匹配的链接(即以AAA结尾的链接)。

$('a[href="AAA"]:first').attr('title'); 

应该工作。

您得到undefined attr的原因在于,将索引器应用于查询结果后,它不是jQuery对象,而是实际的DOM元素。要使用attr,它需要仍然是一个jQuery对象。使用:first选择器将查询结果减少到第一个匹配的结果。由于attr将返回第一个匹配属性的值,因此它不是绝对必要的,但我认为它使意图更清晰。如果你去设置属性值,attr将适用于所有的匹配元素,所以在这种情况下,它是重要的 - 因此我会在两个地方使用它来清晰。

+0

+1 - 这是真的,关于'[0]'的好点 - 这就是导致错误的原因。但是'$('a [href $ =“AAA”]')[0] .attr(“title”);'太过分了 - 它不会返回undefined,但会抛出一个异常:“.attr is不是功能“ – Kobi 2010-06-22 12:48:15

2

你写的方式,你正在寻找一个href,结束“AAA”。这是你的意图吗?

  • $=意味着
  • ^=手段 “结尾”
  • ~=的意思是 “开始”, “包含”

参考文献:jQuery Selectors

6

$('a[href$="AAA"]')应该可以正常工作,但它搜索对于href结束与AA一个。

尝试: $('a[href="AAA"]') - 等于AAA
或者: $('a[href*="AAA"]') - 包含AAA