javascript - 选择特定 href 的第一个实例

标签 javascript jquery css jquery-selectors css-selectors

如何只选择包含特定 href 的链接的第一个实例,解决方案可以是 css 或 javascript,我更喜欢 css,因为我需要在选择后更改样式正确的链接,但我什至不确定 css 是否可以满足我的需要。

<ul class="digital-downloads">
    <li> <a href="order_5129865a7d832&amp;download_file=936">Link</a></li>
    <li> <a href="order_5129870f01410&amp;download_file=936">Link</a></li>
    <li> <a href="order_512a033229f68&amp;download_file=935">Link</a></li>
    <li> <a href="order_512a048548f68&amp;download_file=935">Link</a></li>
    <li> <a href="order_512a0c31734a6&amp;download_file=932">Link</a></li>
</ul>

正如您从上面的代码中看到的,前两个链接并不相同,但它们具有相同的结尾。我需要一种方法来仅选择包含 download_file=936download_file=935download_file=932< 的链接的第一个实例

li 的数量以及相同链接的数量总是不同的,所以我不能选择第三个 li,因为链接 href 在第三个 上不会总是 935 >li,根据情况可以是936,也可以是932。

最佳答案

您可以申请 filter针对 jQuery 选择,循环遍历它们,同时与之前的 href 进行比较:

var last;
var firsts = $(".digital-downloads li a").filter(function(){
    var link = this.href.match(/download_file=\d+$/)[0];
    if (link == last)
        return false; // we had this before, don't select
    else {
       last = link;
       return true; // we've found a new one!
    }
});

简而言之,处理不匹配的正则表达式:

…
    var m = this.href.match(/download_file=\d+$/);
    return m && m[0] != last && (last=m[0],true);
…

关于javascript - 选择特定 href 的第一个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15052440/

相关文章:

javascript - Angular 2 环境变量 - 设置基本身份验证密码

javascript - 如何在javascript中设置颜色过渡?

javascript - 获取 Canvas 中文本输入的中心

javascript - 如果子项比父项宽,则添加早期省略号

javascript - 获取表单中单击按钮的 ID 时出错

javascript - jQuery hide() 和 show() 没有按预期工作

html - 我怎样才能给出这个元素的全宽?

javascript - for in 循环只影响数组的最后一个元素,我希望我的代码适用于数组的每个元素

css - 如何安装和使用我为 CLI 编写的自定义 CSLint 规则?

javascript - 为什么我的 jqgrid 没有显示任何数据?