如何根据其href属性在页面中查找链接?

时间:2010-06-22 12:33:48

标签: jquery css-selectors conditional-statements

我正在尝试找到我的网页的第一个链接,该链接适合"AAA"(示例)。

我首先尝试使用此href获取链接:

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

然后选择第一个:

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

然后定位此链接的title属性

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

但所有这一切都让我在每一步都“未定义”。 怎么做?

锚点示例:

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

4 个答案:

答案 0 :(得分:19)

怎么样:

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

那么它取决于你是否希望href等于'AAA',包含它,开始/结束它。在这种情况下,您不会使用href=,而是使用href$=Neil's answer包含您可以使用的不同类型的测试。

如果您可以发布HTML代码,也会有所帮助。

答案 1 :(得分:6)

$('a[href$="AAA"]')应该可以正常运行,但它会搜索结束href个。

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

答案 2 :(得分:3)

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

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

应该有用。

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

答案 3 :(得分:2)

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

  • $=表示“以...结尾”
  • ^=表示“以”开头“
  • ~=表示“包含”

参考文献:jQuery Selectors