$(this).attr('id':'name', visibility:'hidden', fill:'black', stroke-width:2)
我用这种方法设置了1000个元素的属性。一切正常,但.attr()函数执行需要10毫秒,我需要优化它,是否有任何替代方案呢?
提前感谢您的帮助。
$(this).attr('id':'name', visibility:'hidden', fill:'black', stroke-width:2)
尝试像这样做,为了更好的性能,请使用setAttribute()。
setAttribute()方法会添加指定的属性,并赋予它指定的值。
this.setAttribute("id","name");
this.style.visibility = 'hidden';
this.id = 'name';
this.style.visibility = 'hidden';
不要直接更改属性,为那些元素添加一个类,该类定义了您想要的属性,如何?
我在这里进行了性能测试: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;
}
$(this).attr({id:'name', visibility:'hidden', fill:'black', 'stroke-width':2});
$(this)
缓存到一个变量中可以节省很多毫秒。 - Teemu