jQuery 有一个attr()
检索给定 HTML 属性值的方法。例如:
var foo = document.getElementById("foo");
$(foo).attr("id");
但是,从性能角度来看,这并不是最佳选择,因为必须创建 jQuery 对象才能调用attr()
方法。这表现更好:foo.id
.
所以,理想情况下我们希望避免使用attr()
。但是,我们可以这样做(对于任何属性)吗?我相信foo.id
and foo.value
是“安全”(跨浏览器),但我记得有问题foo.href
.
以下是我希望能够“直接”检索的各种属性的列表:
对于任意元素:foo.id
, foo.name
对于锚:foo.href
, foo.target
, foo.rel
对于图像、对象、iframe:foo.src
, foo.width
, foo.height
对于表单元素:foo.checked
, foo.selected
, foo.disabled
, foo.readonly
, foo.type
, foo.value
, foo.action
那么问题来了:上面的表达式是跨浏览器的吗?我可以安全地使用它们吗?
指向研究此问题的文章的链接也很好。
编辑(根据答案):粗体表达式使用不安全!