On Apr 30, 9:13 am, Mike van Lammeren <[EMAIL PROTECTED]> wrote:
> Here are some handy extensions to select table rows and columns:
>
> var TableUtils = {
>     /**
>      * @param element a table element
>      * @param integer the requested row
>      * @return array an array of table cell elements
>      **/
>     getRowCells: function(tableElement, rowIndex){
>         tableElement = $(tableElement); // extend the table element
>         var tableRows = tableElement.down().childElements();
>         if(tableRows[rowIndex])
>         {
>             return (tableRows[rowIndex]).descendants();
>         }
>         return [];
>     },

Why traverse the DOM when there are ready-to-use collections?

  getRowCells: function(tableElement, rowIndex) {
    return tableElement.rows[rowIndex].cells;
  }


>     /**
>      * @param element a table element
>      * @param integer the requested row
>      * @return array an array of table cell elements
>      **/
>     getColumnCells: function(tableElement, columnIndex){
>         tableElement = $(tableElement); // extend the table element
>         var columnCells = [];
>         var tableRows = tableElement.down().childElements();
>         tableRows.each(function(trEl, index){ // loop over each table
> row
>             var tCells = trEl.descendants(); // table cells in row
>             if(tCells[columnIndex])
>             {
>                 columnCells.push($(tCells[columnIndex])); // extend
> each tableElement
>             }
>         });
>         return columnCells;
>     }}


  getColumnCells: function(tableElement, columnIndex) {
    var rows = tableElement.rows;
    var cells = [];
    for (var i=0, len=rows.length; i<len; i++) {
      cells.push(rows[i].cells[columnIndex]);
    }
    return cells;
  }

Incidentally, tableSection elements have a rows collection too, so
tableElement may not be the best choice of variable name.


--
Rob
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Spinoffs" group.
To post to this group, send email to rubyonrails-spinoffs@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-spinoffs?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to