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 [];
    },
    /**
     * @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;
    }
}
Element.addMethods('table', TableUtils);


Example calls:
$('testTable').getColumnCells(1).invoke('fade');
$('testTable').getRowCells(1).invoke('fade');

What do you think? Is there a faster/more elegant solution?

Mike van Lammeren

--~--~---------~--~----~------------~-------~--~----~
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