Aloha,
Я нашел ответ на свой вопрос здесь . В основном я хочу сказать, есть ли у тега атрибут. Мне все равно, какое значение, только если оно есть.
Я сейчас использую:
$.fn.hasAttr = function (attr) {
var attribVal = this.attr(attr);
alert(attr+" ["+attribVal+"]");
return (attribVal !== undefined) && (attribVal !== false);
};
Эта функция не работает в Opera или Webkit. Возвращает true, даже если атрибут не существует. Предупреждение, которое я добавил, показывает, что attribVal
равно пустому, не ложному, не неопределенному, не нулевому, а пустому. Firefox и IE это прекрасно работает, так как attribVal
не определено.
Проблема в том, что я хочу, чтобы он возвращал значение true для пустого атрибута, если оно указано в теге, и значение false, если атрибут не указан в теге.
Edit:
ожидаемые результаты ...
<tag /> should be hasAttr('placeholder') = false
<tag placeholder /> should be hasAttr('placeholder') = true
<tag placeholder="" /> should be hasAttr('placeholder') = true
<tag placeholder="Hi" /> should be hasAttr('placeholder') = true
Редактировать: Текущий код
Это работает в WebKit и FF, а не в IE или Opera.
Обновление После всего этого мой оригинальный код работает, если только я не смотрю на атрибут заполнителя. Opera и webkit возвращают true для всех четырех опций, когда я смотрю на атрибут placeholder. См. здесь для примера. Я обновил ожидаемые результаты, чтобы использовать атрибут placeholder.