我正在寻找一个jQuery选择器来查找图像的所有链接,这很简单,比如说,
$('a[href$="jpg"], a[href$="jpeg"], a[href$="png"], a[href$="gif"]')
但如果我的链接附加了一个查询字符串,则会中断,如下所示:
<a href="http://example.com/image1.jpg?1737892">link</a>
有没有办法选择上面所有的图片链接,但如果图片链接的末尾有一个查询字符串,它仍会有效?
答案 0 :(得分:5)
这种中断的原因是因为选择器的$
部分意味着它只在jpg
的末尾寻找href
。请改用包含选择器(*
),并包含扩展名的点:
$('a[href*=".jpg"], a[href*="jpeg"], a[href*=".png"], a[href*=".gif"]')
但请注意,这意味着它也会匹配以下网址:
http://mysite.com/fakelink.jpg.aspx
http://mysite.com/page.php?param=image.jpg
因此,即使不太可能发生此类可能性,您也不能100%保证选择图像链接。
答案 1 :(得分:4)
您可以将.
添加到表达式中,如“.jpg”中所示,然后使用*=
$('a[href*=".jpg"], a[href*=".jpeg"]')