Jake Verbaten wrote: > JCM wrote: >> If you want perfomance: >> $('#x').find('tr.zebra').removeClass('zebra'); > If you want real performance don't use jQuery (which is an order of > magnitude slower on average) > > var nodes = document.getElementById("x").getElementsByClassName("zebra"); > > for (var i = 0, len = nodes.length; i < len; i++) { > var node = nodes[i]; > if (node.tagName !== "TR") continue; > var temp = (" " + node.className + " "); > temp.replace(" zebra ", ""); > node.className = temp.trim(); > }
However, the jQuery solution works for me in IE7 and IE8, which I have to support. You solution doesn't, even when I polyfill `.trim()`, because those browsers also don't support `.getElementsByClassName()`. In my quick test [1], your solution performs better than jQuery in Firefox (only by about half an order of magnitude, not a full order.) They perform the same in Chrome 15 and Android. But without writing a polyfill for gEBCN, I can't even test in older IEs. And, as someone else has pointed out, this is not likely something that will run in a tight loop. So does it really matter that it can be run 100,000 times per second rather than a mere 30,000? -- Scott [1] http://jsperf.com/zebra-dom-vs-jquery -- To view archived discussions from the original JSMentors Mailman list: http://www.mail-archive.com/jsmentors@jsmentors.com/ To search via a non-Google archive, visit here: http://www.mail-archive.com/jsmentors@googlegroups.com/ To unsubscribe from this group, send email to jsmentors+unsubscr...@googlegroups.com