【问题标题】:How to find a link in a page based on its href attribute?如何根据href属性在页面中找到链接?
【发布时间】:2011-03-06 19:20:08
【问题描述】:

我正在尝试查找我的页面的第一个链接,其中 url 适合 "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">

【问题讨论】:

  • 你能发布一个实际&lt;a&gt;标签的样本吗?
  • 这里是链接之一:谢谢你¨!
  • @daviddarx 我已将示例添加到您的问题中。
  • 你想匹配href的哪一部分?
  • 全文“contents/medias/images/news/news_test_big.jpg”

标签: jquery css-selectors conditional-statements


【解决方案1】:

怎么样:

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

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

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

【讨论】:

  • @neil:是的,我把它添加到我的答案中
  • 我要试试,我会在几分钟后回来
  • 该死,它告诉我 First 不是函数:Erreur : $("a[href='" + imageToDisplay + "']:first").first 不是函数 Fichier Source :vqt/interface/js/custom/general.js 利涅:178
  • @daviddarx:它是 .first(),而不是 .first
【解决方案2】:

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

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

应该可以。

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

【讨论】:

  • +1 - 这是真的,关于[0] 的好点 - 这就是导致错误的原因。但是$('a[href$="AAA"]')[0].attr("title"); 走得太远了——它不会返回undefined,但会引发异常:“.attr 不是函数”
【解决方案3】:

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

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

参考:jQuery Selectors

【讨论】:

    【解决方案4】:

    $('a[href$="AAA"]') 应该可以正常工作,但它会搜索 end 为 AAA 的 hrefs。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-13
      • 2021-12-02
      • 1970-01-01
      • 2016-01-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多