Как выбрать изображение на основе его пути / URL? - PullRequest
3 голосов
/ 02 июля 2010

Я пытаюсь выбрать изображения, основываясь на их URL, но по какой-то причине это не играет в мяч:

В конечном итоге я хочу что-то вроде:

var imgs = $("img[@src='images/object.png']:not(:hidden)");

Но даже счто-то простое, например:

$("img[@src='images/object.png']");

Выдается эта ошибка: «Ошибка типа: объект не поддерживает это свойство или метод».

Если я опускаю @ в запросе:

$("img[src='images/object.png']");

Я не получаю возвращенных предметов.Я скопировал и вставил путь непосредственно из сгенерированного HTML во время выполнения, и он по-прежнему отказывается возвращать какие-либо элементы.Если я заменю селектор src на селектор идентификатора, он возвращает элементы.

Это тег изображения, сгенерированный во время выполнения:

<img id="ctl00_ContentPlaceHolder1_object_1" src="images/object.png" style="height:16px;width:16px;border-width:0px;visibility:visible;display:inline;margin-right:3px;" />

Я использую jQuery 1.4.2 и яЯ проверил всю документацию и все, кажется, закодировано правильно.Я предполагаю, что это не ошибка, а неправильное толкование с моей стороны.Может ли кто-нибудь хоть что-нибудь осветить на этом?

Ура

Ответы [ 2 ]

9 голосов
/ 02 июля 2010

Не используйте @ и обязательно включите полный запрос.Если он есть.

$("img[src='/images/marketing/logo.png?1277792289']")[0]

Вы можете также выполнить подстроку соответствия

$("img[src*='logo']")[0]

И селектор :not находится не в том месте.Не должно быть в скобках атрибута.

$("img[src*='logo']:not(:visible)")[0]
1 голос
/ 02 июля 2010

Раньше это была ошибка в jQuery, и, видимо, она все еще есть.

Проверьте следующие билеты:

По сути, то, что у вас будет работать, будет работать, если вы используете селекторы attributeEndsWith ($) или attributeContains (*), потому что jQuery сравнивает вашу строку не с тем, что вы положили в атрибут src изображения, а с полным путем URL (т.е. , http: // ..... /images/object.png)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...