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 [email protected]
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
-~----------~----~----~----~------~----~------~--~---