gpt4 book ai didi

jquery - 为什么 jQuery 1.9+ attr() 方法没有被弃用?

转载 作者:行者123 更新时间:2023-12-03 21:33:35 24 4
gpt4 key购买 nike

作为一名 jQuery1.9+ 软件开发人员,我可以在日常工作中“弃用”attr() 方法吗?

<小时/>

正如许多问题所示,

关于“使用 attr 还是使用 prop?”存在很多困惑,并且从我(开发人员)的角度来看,对于 attr() 的所有使用方法,我们可以使用 prop 代替:

  1. 向后兼容性:编写新软件不需要这个;
  2. 性能:John says “通过 .attr() 方法访问属性会比直接通过 .prop() 访问属性稍慢”;
  3. 更改属性值:所有属性都可以通过 prop(name,newvalue) 方法更改。
  4. 删除属性:所有属性都可以通过 removeProp(name) 方法删除。
  5. 检查 HTML 属性值:浏览器使用 DOM,所有 HTML 都会转换为 DOM,并且,如果 DOM 影响,attr(name) 方法也会受到影响。关于 prop 的“强类型”:它比“html 字符串值”更好(例如“checked”与 true)。
  6. 检查“HTML 原始代码”中是否定义了某个属性(假设浏览器中的方法 attr 如果是,则返回未定义不是)...好吧,我们在某些软件中需要这个? At forms , “.val() 方法是获取或设置表单值的推荐 jQuery 方法”
  7. 跨浏览器一致性:两者(不仅仅是 attr)都是一致的方法。 (是吗?)。

所以,在这个时候(2013 年),我没有看到在开发新的 jQuery 代码时使用 attr 方法的充分理由......但是,换句话说,这就是问题:有充分的理由在我的日常任务中使用 attr 方法吗?

最佳答案

.attr()并没有被弃用,因为它对于它的用途很有用,并且是实现它的用途的唯一正确方法(除了使用每个元素的 getAttribute 函数,它做同样的事情......或者自己解析 HTML)。我们进行此讨论的唯一原因是 jQuery(和一些旧浏览器(咳嗽 IE 咳嗽))错误地合并了属性和属性,并且 困惑是他们在 1.9 中明显修复的问题。

.attr()检索属性,而 .prop()检索属性。两者是不同的东西,而且官方一直都是不同的(尽管 DOM 通常有一个属性对应于一个属性)。如果您有<p whatever="value"> ,其中whatever不是浏览器识别的属性,您可以使用 .attr()来获取属性的值。 .prop()在大多数浏览器中甚至无法看到它。

当您关心生成的 DOM 属性时,请使用 .prop() 。当您关心实际的 HTML 属性时,请使用 .attr() 。这并不是一个非此即彼的事情。你可以在相同的代码中使用这两种方法,并且宇宙甚至不会崩溃一次(假设你已经正确使用了它们)。 :) 只需使用适合您当时正在做的工作的那个,不要试图“弃用”没有损坏的东西。

关于jquery - 为什么 jQuery 1.9+ attr() 方法没有被弃用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15070277/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com