【问题标题】:Select <a> which href ends with some string选择 <a> 以某个字符串结尾的 href
【发布时间】:2010-09-23 04:03:03
【问题描述】:

是否可以使用jQuery 选择所有href 以“ABC”结尾的&lt;a&gt; 链接?

比如我想找到这个链接&lt;a href="http://server/page.aspx?id=ABC"&gt;

【问题讨论】:

    标签: jquery string anchor href


    【解决方案1】:
       $('a[href$="ABC"]')...
    

    选择器文档可以在http://docs.jquery.com/Selectors找到

    对于属性:

    = is exactly equal
    != is not equal
    ^= is starts with
    $= is ends with
    *= is contains
    ~= is contains word
    |= is starts with prefix (i.e., |= "prefix" matches "prefix-...")
    

    【讨论】:

    • 最近发生了一些变化。 $('[href$=-abc]') 曾经工作。现在它需要引号 $('[href$="-abc"]') 我不知道它什么时候改变了。也许它总是应该需要引号,并且只是碰巧以前工作过。
    • 请注意,“ABC”区分大小写! (只是花了相当长的时间来弄清楚那个......)
    • jquery中如何获取href不包含ABC
    • @sf.dev $('a').filter(function() { return !this.href || !this.href.match(/ABC/); });
    • 这适用于 vanilla javascirpt。您可以简单地使用document.querySelectorAll('a[href$="ABC"]') 来实现这一点。
    【解决方案2】:
    $('a[href$="ABC"]:first').attr('title');
    

    这将返回 URL 以“ABC”结尾的第一个链接的标题。

    【讨论】:

    • 更正:以 ABC 结尾
    • 其实还是有细微差别的。这将选择具有给定 href 的第一个链接,如果您只需要更改一个链接,这将非常有用。
    【解决方案3】:
    $("a[href*='id=ABC']").addClass('active_jquery_menu');
    

    【讨论】:

    • 对于可能会从该答案中获得帮助的未来访问者。
    • @Sumit 请注意,只有当 OP 的 ABC 碰巧引用了一个 ID 时,您的答案才是正确的。
    【解决方案4】:
    $("a[href*=ABC]").addClass('selected');
    

    【讨论】:

      【解决方案5】:

      如果您不想导入像 jQuery 这样的大库来完成如此琐碎的事情,您可以使用内置方法 querySelectorAll 代替。几乎所有用于 jQuery 的选择器字符串也适用于 DOM 方法:

      const anchors = document.querySelectorAll('a[href$="ABC"]');
      

      或者,如果您知道只有一个匹配元素:

      const anchor = document.querySelector('a[href$="ABC"]');
      

      如果您要搜索的值是字母数字,您通常可以省略属性值周围的引号,例如,在这里,您也可以使用

      a[href$=ABC]
      

      但引号更灵活,generally more reliable

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-08-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-05-29
        • 2022-10-14
        相关资源
        最近更新 更多