Suppose you have an html table like the one below (name, favorite color) and you want to grab all the favorite colors.
| Name | Favorite Color |
|---|---|
| Joe | blue |
| Sally | green |
| Mike | yellow |
| Ziggy | orange |
Here are some jquery plugin functions that let you do it:
/** find the index of this node among its siblings **/
jQuery.fn.childn = function() { return 1 + jQuery(this).parent().find("> *").index(this); }
/** given a table row, find the cell value under the supplied heading **/
jQuery.fn.column = function(heading) {
var idx = jQuery(this).parents("table:first").find("th:contains("+heading+")").childn();
return jQuery(this).find("> *:nth-child("+idx+")");
}
Example:
$("table tbody tr").column("Favorite Color");
Update: use :eq instead of :nth-child! See my follow-up post for details.
No comments:
Post a Comment