Как проверить, имеет ли 'this' определенный атрибут?
Я хочу проверить, имеет ли элемент, который я нажимаю (этот), определенный атрибут, как условие в условии if.
Можно ли сделать это с помощью JavaScript или jQuery?
Спасибо
Ответ 1
Я дам ответ не-jQuery, просто для пинков и хихиканья.
В JavaScript все, что есть null или undefined (или даже пустая строка), неявно "ложно", поэтому вы можете сделать это (предполагая, что вы ссылаетесь на атрибут HTML с помощью jQuery):
if ($(this).attr('foo')) {
}
Кроме того, если вам нужно значение из атрибута, вы можете сделать это:
var foo;
if (foo = $(this).attr('foo')) {
// use "foo" in here
}
Ответ 3
Вы имеете в виду что-то вроде этого? \
if ($.trim($(this).attr('attribute')) != '')
{ ... }
Ответ 4
Если вы используете атрибут HTML, то getAttribute является единственным разумно надежным способом, отмечая, что он имеет причуды в IE.
Если вы сразу после свойства DOM, просто:
if (this.foo) {
...
}
вероятно, сделает. Тест возвращает false, если foo установлен на нуль (0), пустую строку, null, NaN или undefined. Таким образом, на самом деле это не говорит вам, обладает ли этот элемент этим свойством, только то, что пытается получить к нему доступ, возвращает значение false. Но это обычно достаточно.