I have some table structure:
<tr class="row-2"><tr>
<tr class="row-3">..<tr>
<tr class="row-4">..<tr>
<tr class="row-5">..<tr>
<tr class="row-6">..<tr>
<tr class="row-7"><tr>
<tr class="row-8">..<tr>
<tr class="row-9">..<tr>
<tr class="row-10">..<tr>
<tr class="row-11">..<tr>
...etc
for this example TR with classes “row-2” and “row-7” is parrent product link wich expand child rows.
<script>
$(function() {
$('tr.parent')
.css("cursor","pointer")
.css("color","red")
.attr("title","Click to expand/collapse")
.click(function(){
$(this).siblings('.child-'+this.id).toggle();
});
$('tr[@class^=child-]').hide().children('td');
});
</script>
Rows -3…-6 is child of row-2
and
Rows -8…-11 is child of row-7
How can I find row-2, row-7, etc then add second class “parent” and ID similar class (id=”row-2″, id=”row-7″, etc)? Also I need add in each TR between row-2 and row-7 class equal previous parent row. In bottom line I need something like this:
<tr class="row-2 parent" id="row-2"><tr>
<tr class="row-3 child-row2">..<tr>
<tr class="row-4 child-row2">..<tr>
<tr class="row-5 child-row2">..<tr>
<tr class="row-6 child-row2">..<tr>
<tr class="row-7 parent" id="row-7"><tr>
<tr class="row-8 child-row7">..<tr>
<tr class="row-9 child-row7">..<tr>
<tr class="row-10 child-row7">..<tr>
<tr class="row-11 child-row7">..<tr>
..etc
One way is to do a two-pass on all rows, to set up the required classes and id’s. In the first pass, add an id same as the class name, and also add the
parentclass to row-2, and row-7. In the second pass, find each.parentrow, and addchild-<id>class to their siblings until the next parent. Instead of hard-coding the values for row-2 and row-7, this assumes that all header items are contained inside a<th>element, instead of a<td>element.Here’s some code: http://jsfiddle.net/vYTW2/