Javascript setAttribute与jquery多属性setter

Javascript setAttribute Vs jquery multiple attribute setter

本文关键字:属性 setter jquery setAttribute Javascript      更新时间:2023-10-24

我想为多个元素设置这么多属性。与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慢多少。

jQuery是一个库,所以我认为它比纯javascript更好。它可以帮助您更轻松地使用javascript。我是这么想的!你可以在这里看到同样的问题

如果您想获得元素的所有属性,也可以在这里看到。