如何只选择包含特定 href
的链接的第一个实例,解决方案可以是 css 或 javascript,我更喜欢 css,因为我需要在选择后更改样式正确的链接,但我什至不确定 css 是否可以满足我的需要。
<ul class="digital-downloads">
<li> <a href="order_5129865a7d832&download_file=936">Link</a></li>
<li> <a href="order_5129870f01410&download_file=936">Link</a></li>
<li> <a href="order_512a033229f68&download_file=935">Link</a></li>
<li> <a href="order_512a048548f68&download_file=935">Link</a></li>
<li> <a href="order_512a0c31734a6&download_file=932">Link</a></li>
</ul>
正如您从上面的代码中看到的,前两个链接并不相同,但它们具有相同的结尾。我需要一种方法来仅选择包含 download_file=936
或 download_file=935
或 download_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/