W3C home > Mailing lists > Public > www-dom@w3.org > October to December 2011

Re: Simplifying element creation

From: James Graham <jgraham@opera.com>
Date: Tue, 04 Oct 2011 12:52:11 +0200
Message-ID: <4E8AE55B.7090907@opera.com>
To: www-dom@w3.org
On Tue 04 Oct 2011 11:18:18 AM CEST, Dominic Cooney wrote:
> On Tue, Oct 4, 2011 at 5:30 PM, Anne van Kesteren<annevk@opera.com>  wrote:
>> So far we discussed having Element.create() and having new methods on Node
>> that would be more practical than what we have today. Maybe we should
>> combine these in some way? Charles proposed some kind of JSON serialization,
>> but I do not think it makes sense to tie it to JSON.
>>
>> It could be something like this:
>>
>> ELEMENT = [NAME, optional ATTRS, optional EVENT_HANDLERS, TEXT | ELEMENT
>> ...]
>>
>> E.g.<div>Hello<a href="/">World</a></div>  is represented as:
>>
>>   ["div", "Hello ", ["a", {href:"/"}, "World"]]
>
> This is good in that it doesn't require any new bound identifiers.
>
> I think readability suffers a bit because element names and text are
> both strings.
>
> If you want to pass a list of children as a parameter, there is also
> no good serialization for it. Using a list is weak because it is the
> same type as an element.

You can use Element.append.apply. It's not wonderful but it's OK I 
think.
> What about using constructor functions for elements? [HTMLDivElement,
> 'Hello ', [HTMLAElement, {href: '/'}, 'World']].

That doesn't work because they're not constructor functions; they're 
interface objects and multiple elements can have the same interface 
(HTMLHeadingElement for example).
Received on Tuesday, 4 October 2011 10:52:51 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Friday, 22 June 2012 06:14:08 GMT