Javascript setAttribute与jquery多属性setter
Javascript setAttribute Vs jquery multiple attribute setter
我想为多个元素设置这么多属性。与jquery相比,Javascript总是提供更好的性能。
我想知道在通过jquery和javascript处理多个属性时,哪一个能提供更好的性能。
Jquery多属性设置器:
$(element).attr({'id': 'id1', 'index':1, 'value':10,'check':'checked'});
使用javascript setAttribute:
element.setAttribute('id','id1');
element.setAttribute('index','1');
..................................
当我使用javascript时,我需要写多行。否则需要为此创建自定义函数。
有人能解释一下哪一个表现更好吗?为什么?
谢谢,
Siva
这里有一个测试属性设置的jsperf。我不确定它是否涵盖了您的情况,但正如其他人所说,纯javascript比使用库要快得多。(我甚至不确定jsperf是否有效。我的意思是,如果它测试你需要什么)。
http://jsperf.com/aaa-setting-attribute
jQuery版本比纯javascript版本慢66%。
计算机的成本远低于程序员。
比方说:
使用纯js可以使代码运行1ms,程序员可以工作3个小时。
使用jQuery将使代码运行2ms,程序员工作1分钟
查看利润?
您可能应该设置属性,而不是属性,因为它们在浏览器之间更一致,并且对DOM元素有更一致的影响(有时设置属性会影响属性,有时不会)。设置属性几乎总是具有所需的效果(例如,将复选框设置为选中),而设置相关属性并不总是如此。
如果你想在一个元素上设置多个属性,你也可以使用一个小函数:
function setProperties(element, props) {
for (var prop in props) {
if (props.hasOwnProperty(prop)) {
element[prop] = props[prop];
}
}
}
我看不出它会比jQuery慢多少。
如果您想获得元素的所有属性,也可以在这里看到。
相关文章:
- 如何防止在javascript中执行继承属性的getter-setter方法
- 引用属性而不是 getter 和 setter
- 什么类型的对象/属性是原型getter和setter
- 使用相同的getter和setter创建多个属性
- Javascript setAttribute与jquery多属性setter
- JS是否可以具有与属性相同的getter和setter方法
- 带有 setter 方法的 JavaScript 属性不是真正的属性
- 使用 getter/setter 覆盖 javascript 属性,同时仍访问底层属性
- JavaScript引擎如何在具有原型的对象上设置属性,并为该属性设置一个setter
- Setter 函数用于动态访问数组中的字段,该数组是一个属性
- 通过setter设置继承的属性
- 我能告诉通用getter/setter在其主体中应用了什么属性吗
- 为ES5或ES6中对象的嵌套属性简明定义Getter和Setter
- 对象创建-定义属性setter
- 将JavaScript getter/setter添加到本机不可配置的属性中
- 你能用setter在一个属性上添加额外的属性吗
- 为AngularJS的子属性定义getter setter
- 作为类的函数-为私有属性创建getter和setter
- 对象的Javascript getter和setter,而不是对象属性
- 不鼓励使用EcmaScript 5中的属性getter和setter.为什么