作为一名使用jQuery1.9+的软件开发人员,我是否可以在日常工作中“废弃”attr()
方法的使用?
正如许多问题所显示的那样,
- .prop() vs .attr() (主要)
- jQuery attr vs. prop, there are a list of props?
- jQuery attr vs prop?
- 迁移 jQuery 1.8.3 到 1.9.0 - 替换已弃用的 .attr()
- ... 等等 ...
关于“使用 attr 还是使用 prop?”存在很多困惑,而在我(开发者)的观点中,对于所有使用 attr()
方法的情况,我们可以使用 prop
来代替:
- 向后兼容性: 编写新软件不需要这个;
- 性能: John说 "通过 .attr() 方法访问属性会比直接通过 .prop() 访问略慢";
- 更改属性值: 可以通过
prop(name,newvalue)
方法更改所有内容。 - 删除属性: 可以通过
removeProp(name)
方法删除所有内容。 - 检查 HTML 属性值: 浏览器使用 DOM,所有 HTML 都被转换为 DOM,如果 DOM 受到影响,则
attr(name)
方法也受到影响。关于 prop 的“强类型”:它比“html 字符串值”(例如“checked” vs true)更好。 - 检查属性是否已定义在“HTML 原始代码”中(假设您的浏览器中的 attr 方法返回 undefined 如果没有)... 那么我们在某些软件中需要这个吗?在表单中,".val() 方法是推荐的 jQuery 方法来获取或设置表单的值"
- 跨浏览器一致性: 两者(不仅限于 attr)都是一致的方法。(是吗?)
因此,在目前(2013年)的情况下,我认为在开发新的jQuery代码时没有使用 attr
方法的充分理由... 但是,这也就是说,问题是: 在我的日常任务中使用 attr
方法有充分的理由吗?
attr
与prop
最常见的DOM使用制定一个经验法则?”,或者“什么是最常见的DOM使用方式?”...抱歉,也许是因为我的“表达不清”或者糟糕的英语:只有我在这里发布了这种立场的直接回答。大多数其他答案都是这些的副本。 - Peter Krauss