Если a имеет attr rel = lightbox, то addClass, проблема - PullRequest
1 голос
/ 09 февраля 2011

Интересно, почему это не работает?

var attr = $("a").attr('rel');
if (typeof attr == 'lightBox') {
    $(this).addClass("lightbox");
}

Я хочу добавить класс к ссылке, для которой атрибут REL установлен на «lightBox».

Это должно работать ... верно?

Ответы [ 3 ]

5 голосов
/ 09 февраля 2011
$('a[rel="lightbox"]').addClass("lightbox");

Это должно сработать.

typeof - возвращает тип данных, а НЕ значение!поэтому вы пытаетесь сравнить тип (string) со значением (lightBox).

1 голос
/ 09 февраля 2011

typeof никогда не будет работать в этом контексте (вместо этого вы хотите сравнить содержимое строки, например, if (attr == 'lightBox')), а this также не будет доступно в этом контексте или, по крайней мере, не будет отображаться для нужного элемента..

Почему бы просто не сделать

$("a[rel='lightBox']").addClass("lightBox");

?

0 голосов
/ 09 февраля 2011

Нет, это не сработает.

typeof проверяет тип атрибута - в этом случае атрибут rel всегда является строкой. Выньте typeof, он не будет работать.

Кроме того, откуда взялась $this? 1010 *

...