【发布时间】:2012-06-14 06:50:45
【问题描述】:
注意,这不是.prop() vs .attr() 的重复;该问题是指 prop 与 attr 的基本功能,而此问题是针对它们作为 setter 的差异。
在尝试缩小应该使用 .prop() 设置的内容,以及在创建新元素时应该通过 .attr() 设置的内容时,在使用 jQuery 1.7.2 的测试中,我发现 prop 大约是 2.5 倍更快,所以看起来更可取。
我能找到的使用 attr 设置的唯一列表是 attr:
accesskey、align、background、bgcolor、class、contenteditable、contextmenu、data-XXXX、draggable、height、hidden、id、item、itemprop、spellcheck、style、subject、tabindex、title、valign、width
-
这是否完整(即,不在该列表中的任何内容 - 例如 min、max、step 等 - 都应该使用 prop)?
-
在测试中,其中一些在使用 prop 设置时似乎可以正常工作。测试上面的列表,我用 prop 设置以下内容没有问题:
id、类、对齐、contenteditable、可拖动、隐藏、拼写检查、tabindex、标题
-
是否有某种原因,对于“使用 attr 设置的东西在使用 prop 设置时仍然有效”的列表,为什么它仍然应该使用 attr 设置?如果没有,那么在创建基本
<div id="foo" class="bar" draggable="true" title="zipzap">时性能提高 250% 对我来说似乎很好...... :)
【问题讨论】:
-
关于 dupe 目标的几个答案涉及作为 getter 和 setter 的两种方法之间的差异,甚至列出了可以使用其中一种或另一种访问的属性和属性。
-
似乎您的问题可能更多的是属性和属性之间的区别,以及您应该在什么时候设置属性而不是属性。然而,这也是explained very well in the duplicate。
-
不,这个问题是关于使用两种不同的 jQuery 方法作为设置器时的区别。引用的答案只是非常切题,甚至提到了与该问题相关的任何内容。