JQuery селектор для ссылок на изображения, который допускает строки запроса - PullRequest
2 голосов
/ 29 февраля 2012

Я ищу селектор jQuery, чтобы найти все ссылки на изображения, что достаточно просто, скажем,

$('a[href$="jpg"], a[href$="jpeg"], a[href$="png"], a[href$="gif"]')

Но это не работает, если к моей ссылке добавлена ​​строка запроса, например:

<a href="http://example.com/image1.jpg?1737892">link</a>

Есть ли способ выбрать все ссылки на изображения, как указано выше, но который все равно будет работать, если ссылка на изображение имеет строку запроса в конце?

Ответы [ 2 ]

5 голосов
/ 29 февраля 2012

Причина этого перерыва в том, что часть $ селектора означает, что он ищет только jpg в конце href. Вместо этого используйте селектор содержимого (*) и добавьте точку расширения:

$('a[href*=".jpg"], a[href*="jpeg"], a[href*=".png"], a[href*=".gif"]')

Обратите внимание, что это означает, что он также будет соответствовать следующим URL:

http://mysite.com/fakelink.jpg.aspx
http://mysite.com/page.php?param=image.jpg

Таким образом, вы не гарантированно на 100% выбираете ссылку на изображение, хотя такая вероятность маловероятна.

Пример скрипки

4 голосов
/ 29 февраля 2012

вы можете добавить . к выражению, как в ".jpg", а затем использовать *=

$('a[href*=".jpg"], a[href*=".jpeg"]')
...