jQuery имеет метод attr(), который извлекает значение данного атрибута HTML. Например:
var foo = document.getElementById("foo");
$(foo).attr("id");
Но с точки зрения производительности это не оптимально, так как объект jQuery должен быть создан просто для вызова метода attr(). Это лучше работает: foo.id.
Итак, в идеале мы бы хотели избежать использования attr(). Но можем ли мы это сделать (для любого атрибута)? Я считаю, что foo.id и foo.value являются "безопасными" (кросс-браузер), но я помню, что у меня были проблемы с foo.href.
Вот список различных атрибутов, которые я хотел бы получить "напрямую":
Для любого элемента: foo.id, foo.name
Для якорей: foo.href, foo.target, foo.rel
Для изображений, объектов, iframes: foo.src, foo.width, foo.height
Для элементов формы: foo.checked, foo.selected, foo.disabled, foo.readonly, foo.type, foo.value, foo.action
Итак, вопрос в том, являются ли приведенные выше выражения кросс-браузером? Могу ли я использовать их безопасно?
Ссылка на статью, в которой рассматривается эта проблема, также будет приятной.
Изменить (на основе ответов): Выражения, выделенные полужирным шрифтом, небезопасны!