【发布时间】:2012-04-23 21:53:48
【问题描述】:
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
对于图像、对象、iframe:foo.src、foo.width、foo.height
对于表单元素:foo.checked、foo.selected、foo.disabled、foo.readonly、foo.type、foo.value、foo.action
所以问题是:上面的表达式是跨浏览器的吗?我可以安全地使用它们吗?
链接到一篇研究这个问题的文章也很好。
编辑(根据答案):粗体字不安全!
【问题讨论】:
标签: javascript html cross-browser