Вопрос

Мне нужно переспрашивать мой старый вопрос, наверное, мне не следовало задавать его в час ночи :P

Кажется, что некоторые атрибуты не найдены с помощью селектора атрибутов jquery:

$("*[some=value]");

Пока кажется, что я не могу использовать атрибут действия формы и атрибут src img.Есть ли где-нибудь список атрибутов, которые не работают, чтобы я мог написать для них собственные селекторы?

Еще раз спасибо!


Редактировать: Кажется, никто не верит, что некоторые селекторы работают не так, как ожидалось.Посмотрите на этот пример:На этот сайт (на котором есть jquery 1.3 для поджигания) есть форма, которая выглядит следующим образом:

<form style="display: inline;" method="get" action="list">

(он находится в раскрывающемся списке «Поиск текущих загрузок»).Если вы откроете Firebug и попробуете этот селектор:

$("form[action=list]"); 

вы НЕ сможете выбрать форму.В атрибуте действия нет ничего особенного.То же самое касается источника изображения логотипа на этой странице:

<img alt="Logo" src="/p/aost/logo?logo_id=1238551994"/>

Селектор, который не работает:

$("img[src=/p/aost/logo?logo_id=1238551994");

Конечно, я могу использовать подстановочные знаки, но это не то, что мне нужно.

Это было полезно?

Решение

Не существует «списка» неподдерживаемых атрибутов, потому что его не должно быть;это ошибка в jQuery.

Вот открытые билеты по этому поводу:

Очевидно, общим знаменателем ошибок является то, что jQuery сравнивает указанную вами строку селектора с полным URL-адресом, а не с фактическим атрибутом action/src, как он определен в HTML.Это объясняет, почему атрибутEndsWith или атрибутСодержит селекторы в этом случае работают.

Я бы рекомендовал просто присвоить форме/изображению класс/идентификатор и покончить с этим.

Другие советы

Все зависит от того, какую версию jQuery вы используете.

До версии 1.3 вы могли использовать обозначение @:

$("*[@name=value]")

Так что, возможно, добавление @ поможет.

Помимо этого, вам следует ввести значение атрибута точно то же, что определено в разметке - например.если вы пытаетесь найти изображение с помощью src="http://example.com/dog.jpg", не делайте этого, потому что это не сработает:

$("img[src=dog.jpg")

поскольку он будет пытаться найти изображения с помощью src равный в «dog.jpg», не содержащий его.

Если вы хотите искать атрибуты, определяющие только его части, я бы предложил прочитать Селекторы API jQuery страница.Например, чтобы получить все изображения с помощью src содержащий "dog.jpg", вы можете использовать:

$("img[src*=dog.jpg]")

Аналогичным образом вы можете найти элементы, атрибуты которых начинаются или заканчиваются определенными значениями/строками.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top