为什么jQuery 1.9的attr()方法不被弃用?

前端之家收集整理的这篇文章主要介绍了为什么jQuery 1.9的attr()方法不被弃用?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我可以,一个jQuery1.9软件开发人员在我的日常工作中“不赞成”使用attr()方法吗?

如许多问题所示,

> .prop() vs .attr()(主)
> jQuery attr vs. prop,there are a list of props?
> jQuery attr vs prop?
> Migrating jQuery 1.8.3 to 1.9.0 – Replacing deprecated .attr()
> …等…

有关“使用attr或使用支持”的很多困惑,而且由我的(开发者)观点来看,对于attr()方法的所有用途,我们可以使用prop:

>向后兼容性:编码新软件不需要这个;
> performance:John says“通过.attr()方法访问属性将比直接通过.prop()”访问更慢;
>更改属性值:所有可以通过prop(name,newvalue)方法更改。
>删除属性:所有可以通过removeProp(name)方法删除
>检查HTML属性值:浏览器使用DOM,所有HTML都转换为DOM,而且如果DOM影响到attr(name)方法也会受到影响。关于“强类型”的道具:它比“html字符串值”更好(例如“checked”vs true)。
>检查“HTML原始代码”中是否定义了一个属性(假设浏览器中的方法attr不定义)如果不是这样,那么我们需要一些软件? At forms,“.val()方法是推荐的jQuery方式来获取或设置表单的值”
>浏览器的一致性:两者(不仅仅是attr)是一致的方法。 (它是??)。

所以,在这个时候(2013),在开发新的jQuery代码的时候,我没有看到使用attr方法的好理由…但是,换句话说就是这样一个问题:使用attr方法有很好的理由在我的日常工作中?

解决方法

.attr()不被弃用,因为它对于它的用途是有用的,是唯一正确的方式来做它所做的(没有使用每个元素的getAttribute函数,这是同样的事情…或解析HTML自己)。我们甚至有这个讨论的唯一原因是因为jQuery(和一些旧的浏览器(咳嗽IE咳嗽))错误地混合了属性属性,而这种混乱是他们在1.9中显而易见的。

.attr()检索属性,而.prop()检索属性。这两个是不同的东西,并且总是正式地(尽管DOM通常具有对应于属性属性)。如果你有一个< p whatever =“value”&gt ;,那么浏览器识别的不是属性,你可以使用.attr()来获取属性的值。 .prop()甚至不能在大多数浏览器中看到它。 当您关心生成的DOM属性时,请使用.prop()。当您关心实际的HTML属性时,请使用.attr()。这不是一件事情,你可以在同一个代码中使用这两个代码,宇宙也不会一次爆炸(假设你正确使用它们)。 :)只需使用适合您当时正在做的工作,然后退出尝试“弃用”不破坏的东西。

猜你在找的jQuery相关文章