Javascript setAttribute Vs jquery多个属性setter

时间:2013-11-27 06:18:50

标签: javascript jquery

我想为多个元素设置这么多属性。与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时,我需要写多行。否则需要为此创建自定义功能。

任何人都能解释哪一个能提供更好的表现吗?为什么?

谢谢,

希瓦

4 个答案:

答案 0 :(得分:2)

计算机的成本远低于程序员。

让我们说:

使用纯js将使代码运行1ms,程序员运行3个小时。

使用jQuery将使代码运行2ms,程序员运行1分钟

查看利润

答案 1 :(得分:2)

这是一个测试属性设置的jsperf。我不确定它是否涵盖了你的情况,但正如其他人所说的那样 - 纯粹的javascript比使用库要快得多。 (我甚至不确定jsperf是否有效。我的意思是它测试你需要的东西。)

http://jsperf.com/aaa-setting-attribute

jQuery版本比纯javascript版本慢66%。

答案 2 :(得分:1)

您应该设置属性,而不是属性,因为它们在浏览器中更加一致,并且对DOM元素具有更一致的影响(有时设置属性会影响属性,有时则不会影响属性)。设置属性几乎总是具有所需的效果(例如,设置复选框以进行检查),并不总是设置相关属性。

如果要在元素上设置多个属性,也可以使用小函数:

function setProperties(element, props) {
  for (var prop in props) {
    if (props.hasOwnProperty(prop)) {
      element[prop] = props[prop];
    }
  }
}

我看不出它会比jQuery慢。

答案 3 :(得分:0)

jQuery是一个库,所以我认为它比纯javascript更好。它可以帮助您更轻松地使用JavaScript。我想那个! 您可以看到相同的问题here

如果你想获得元素的所有属性,你也可以看到here