jquery .attr ('alt', 'logo'). css ('display', 'none') не работает! - PullRequest
0 голосов
/ 29 апреля 2010

У меня есть три следующие строки, и первые две строки получают все изображения в документе и скрывают все, но затем, когда я добавляю третью строку, отображаются все изображения.

Что мне нужно, чтобы скрыть только изображения с атрибутом alt = minimal и alt = maximize, но по некоторым причинам скрывает все изображения.

$('img').attr('alt', 'minimize').css("display","none");
$('img').attr('alt', 'maximize').css("display","none");


$('img').attr('alt', 'logo').css("display","inline");

Я использую IE7, но он должен быть совместим с IE6 и IE8.

Любая помощь будет принята с благодарностью.

Спасибо.

Ответы [ 4 ]

2 голосов
/ 29 апреля 2010

что вы делаете: вы берете каждый img в документе и устанавливаете alt в logo, а затем устанавливаете display: inline;.

Обратите внимание, что attr('alt',string) не фильтрует все изображения с alt=string, а вместо этого устанавливает атрибут alt на string для всех изображений.

То, что вы хотите использовать, это:

$('img[alt="minimize"]').css...
$('img[alt="maximize"]').css...

$('img[alt="logo"]').css...
1 голос
/ 29 апреля 2010

В вызове $ ('img'). Attr ('alt', 'logo'). Css ("display", "inline"); "attr" не фильтрует набор элементов dom, которые вы ловите с помощью $ ("img").

Если вы хотите скрыть все, но не изображение с атрибутом 'alt' = 'logo', я думаю, вы можете:

присвойте ему идентификатор логотипа, а затем вызовите: $ ("img"). Not ("# logo"). Hide ()

с сайта jquery:

скрыть ():

Соответствующие элементы будут скрыты немедленно, без анимации. это примерно эквивалентно звонку .css ('display', 'none'), за исключением того, что значение свойства display сохранены в кеше данных jQuery так, чтобы позже дисплей может быть восстановлен Начальное значение. Если элемент имеет отображаемое значение inline, то есть скрытый и показанный, это будет еще раз будет отображаться в строке.

и

attr (attributeName) Возвращает: Строка

Описание: Получить значение атрибут для первого элемента в набор подходящих элементов.

Если вместо этого вы хотите скрыть все максимизируемые и минимизируемые изображения (оба имеют общую часть атрибута «imize»): $ (parentElement) .find ("img [@attr $ = '* imize']"). hide ()

0 голосов
/ 19 июля 2012

OP относится к

http://dev.w3.org/csswg/css3-values/#attr

alt Я думаю, - это просто строковый тип, а не «логотип», что бы то ни было, это не тип данных. Попробуй это. на самом деле, вы можете посмотреть alt в html5 img

http://www.w3.org/TR/html5/the-img-element.html#the-img-element

http://www.w3.org/TR/html5/the-img-element.html#attr-img-alt

http://www.w3.org/TR/html5/the-img-element.html#alt

(в порядке щелчка ссылки - последняя цель)

даже если это не точный ответ (так и должно быть), это должен быть шаг в правильном направлении.

На самом деле я пытаюсь понять, как ссылаться на свойство css в css с помощью attr () - это упоминается в верхнем URL. если бы у меня были мои барабанщики, я мог бы использовать css calc () вместе с ним, но это черновик. может я смогу заставить его работать ...

...