W3C home > Mailing lists > Public > www-dom@w3.org > July to September 2011

Re: Node append

From: Sean Hogan <shogun70@westnet.com.au>
Date: Wed, 21 Sep 2011 12:28:08 +1000
Message-ID: <4E794BB8.8000703@westnet.com.au>
To: Anne van Kesteren <annevk@opera.com>
CC: www-dom@w3.org, Erik Arvidsson <arv@chromium.org>, Ojan Vafai <ojan@chromium.org>
On 17/09/11 1:13 AM, Anne van Kesteren wrote:
> On Thu, 15 Sep 2011 21:37:13 +0200, Erik Arvidsson <arv@chromium.org> 
> wrote:
>> It would be useful to add an append method to the Node interface. It
>> would work as the rest args in Element.create where it would just
>> append Nodes to the end of the childNodes and it would toString() and
>> create Text nodes for everything else.
>>
>> var element = ...;
>> element.append(otherNode, "some text", 42, {toString: function() {
>> return 'x' }});
>>
>> On this topic, it would be useful if the current DOM methods
>> (appendChild, insertBefore and replaceChild) could all be changed to
>> support Strings too.
>
> This seems like a nice plan. Note that if we overload appendChild with 
> DOMString it would throw for anything non-Node non-DOMString. We could 
> make everything stringify by using a special IDL operator (e.g. as 
> XMLHttpRequest does for send()), but depending on what we want to do 
> in the future that might make extensions harder.
>
> Maybe instead of a new append() method we could simply make the 
> methods that already accept DocumentFragMent accept arrays too? The 
> arrays would be valid as long as they only contain nodes 
> DocumentFragment can contain or DOMString.
>
> Let me know what you think.
>
>

So, feature detection would involve:

try { document.createElement("div").appendChild(["hello"]); }
catch (e) { /* feature not available */ }

I'm fine with this but I thought it was generally looked down upon.

Sean
Received on Wednesday, 21 September 2011 02:28:33 GMT

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