[whatwg] Sort child nodes of a DOM node.
Jon Barnett
jonbarnett at gmail.com
Wed Aug 4 15:56:16 PDT 2010
On Fri, Jun 4, 2010 at 1:49 AM, Biju <bijumaillist at gmail.com> wrote:
> There are many cases where we want to sort child nodes of a DOM node.
> Many times it is TR nodes of a TBODY
>
> Right now user writes javascript code to achive that.
> Dont you think it is better if there was built DOM method for each node.
> Additionally the method will have a sort function parameter to compare
> elements
> the same way as in JavaScript Array.sort(compare_func)
>
> function compare_func(a,b){
> if(isHeaderRow(a)) return -1;
> if(isHeaderRow(b)) return 1;
> if(a.textContent == b.textContent) return 0;
> if(a.textContent < b.textContent) return -1;
> return 1;
> }
> tablebody.sortChildNodes(compare_func)
>
> Use cases:-
> Example 1: column sorting in yahoo mail
>
> Example 2: you can sort this listing by clicking the column headers
>
> https://bugzilla.mozilla.org/buglist.cgi?short_desc=sort&short_desc_type=allwordssubstr&resolution=---
>
> Example 2: there are bug report in mozilla asking sorting in XUL grids
>
> https://bugzilla.mozilla.org/showdependencytree.cgi?id=482890&hide_resolved=1
>
This sounds more akin to the thread with the subject line "Adding ECMAScript
5 array extras to HTMLCollection"
It's already easy enough to do once you've copied the nodes into an array:
var rowsArray = convertNodeListIntoJSArray(tBody.rows); // assuming you've
written such a function
rowsArray.sort(compare_func);
tBody.innerHTML = "";
rowsArray.forEach(function(row) { tBody.appendChild(row) });
I'd rather just see some kind of resolution to mixing in Array methods into
the HTMLCollection object. Since HTMLCollection objects are often 'live' it
would just be:
tBody.rows.sort(compare_func);
I have no opinion on how Array methods should be mixed into HTMLCollection
objects, since the difficulty seems to be more in implementation than
devising a web authors' wishlist, but that's what I'd rather see.
--
Jon Barnett
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.whatwg.org/pipermail/whatwg-whatwg.org/attachments/20100804/4b885c5a/attachment-0002.htm>
More information about the whatwg
mailing list