JavaScript中.attr()的替代方法

3
$(this).attr('id':'name', visibility:'hidden', fill:'black', stroke-width:2)

我用这种方法设置了1000个元素的属性。一切正常,但.attr()函数执行需要10毫秒,我需要优化它,是否有任何替代方案呢?
提前感谢您的帮助。

1
如果您需要这样的性能,请改用纯JS。 - Royi Namir
3
那看起来不是有效的语法。 - elclanrs
$(this) 缓存到一个变量中可以节省很多毫秒。 - Teemu
3个回答

3

尝试像这样做,为了更好的性能,请使用setAttribute()。

setAttribute()方法会添加指定的属性,并赋予它指定的值。

this.setAttribute("id","name");
this.style.visibility =  'hidden';

2

2

不要直接更改属性,为那些元素添加一个类,该类定义了您想要的属性,如何?

我在这里进行了性能测试:http://jsperf.com/attr-vs-classsname,在我的浏览器/操作系统上,attr()方法慢了33%。

方法如下:

javascript:

this.className = "custom-class";
this.id = 'name';

伴随的CSS:

.custom-class {
  visiblity: hidden;
  fill: black;
  stroke-width: 2;
}

此外,您在attr()调用中缺少括号,并且需要将连字符形式的stroke-width方法放在引号中,如下所示:
$(this).attr({id:'name', visibility:'hidden', fill:'black', 'stroke-width':2});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接