- From: Kornel Lesinski <kornel@ideadesigners.com>
- Date: Tue, 06 Sep 2005 10:12:38 +0100
On Tue, 06 Sep 2005 00:54:56 +0100, Ian Hickson <ian at hixie.ch> wrote: >> > I fear that if we use a string that must be parsed, we will encourage >> > buggy implementations. >> >> Not at all. Actually this should improve implementations, because same >> parsing algorithm is used for both input string and class attribute. > > Unfortunately in practice the two parts of that code are likely to be > completely unrelated parts of the codebase, so that reuse is unlikely. Even if it isn't reused, such function is not a rocket science. Can't you trust implementors to trim and split string properly? >> For example I may want first to find set of classes I'd like to match >> against. With solution I propose it's easy and intuitive to anyone who >> used .className: >> >> if (x) find += " class1"; >> if (y) find += " class2"; >> getElementsByClassName(find); >> >> but with varargs function it's really cumbersome: >> if (x) find.push("class1"); >> if (y) find.push("class2"); >> switch(find.length) >> { >> case 1: getElementsByClassName(find[0]); break; >> case 2: getElementsByClassName(find[0],find[1]); break; >> ... >> } > > You can just do: > > if (x) find.push("class1"); > if (y) find.push("class2"); > document.getElementsByClassName.apply(document, find); > > ...which seems much better to me than using a string. It's the first time I see apply method used. I couldn't find it in ECMA262-3 nor in WA1.0. Can you give me a hint where it's defined? Why is that better than using string? -- regards, Kornel Lesinski
Received on Tuesday, 6 September 2005 02:12:38 UTC