I'm stuck with my table. I need create toggle rows function, but I have no idea how to find sub rows in table. Can someone help me?
- I have table with many rows > 500
- All Rows have class="row-1,row-2.....row-600 etc"
- And all main rows also have class="parent"
Between each "parent" rows I have 6 rows, so I need for toggle/collapse purposes find all (sub)rows between parent rows. and add class with id like in previous parent row.
For example:
parent have class="row-1 parent" all sub must have - class="child-row-1"default table
<table id="table">
<tr class="row-1 odd parent">
<th class="column-1">st. 3 - 5</th>
<th class="column-2">Profile</th>
<th class="column-3">Purpose</th>
</tr>
<tr class="row-2 even">
<td class="column-1">Metal Stamp</td>
<td class="column-2">Width</td>
<td class="column-3">Price</td>
</tr>
<tr class="row-3 odd">
<td class="column-1">Circle 3 - 5</td>
<td class="column-2">28-110</td>
<td class="column-3">21500</td>
</tr>
<tr class="row-4 even">
<td class="column-1">Circle 3 - 5</td>
<td class="column-2">115-180</td>
<td class="column-3">20700</td>
</tr&g开发者_如何学Pythont;
<tr class="row-5 odd">
<td class="column-1">Cube 3 - 5</td>
<td class="column-2">63-80</td>
<td class="column-3">21500</td>
</tr>
<tr class="row-6 even">
<td class="column-1">Cube 3 - 5</td>
<td class="column-2">100-220</td>
<td class="column-3">20700</td>
</tr>
<tr class="row-7 odd">
<td class="column-1">Line 3 - 5</td>
<td class="column-2">10-50 х 40-200</td>
<td class="column-3">27000</td>
</tr>
</table>
in the end it should look like this:
<table id="table">
<tr class="row-1 odd parent">
<th class="column-1">st. 3 - 5</th>
<th class="column-2">Profile</th>
<th class="column-3">Purpose</th>
</tr>
<tr class="row-2 even child-row-1">
<td class="column-1">Metal Stamp</td>
<td class="column-2">Width</td>
<td class="column-3">Price</td>
</tr>
<tr class="row-3 odd child-row-1">
<td class="column-1">Circle 3 - 5</td>
<td class="column-2">28-110</td>
<td class="column-3">21500</td>
</tr>
<tr class="row-4 even child-row-1">
<td class="column-1">Circle 3 - 5</td>
<td class="column-2">115-180</td>
<td class="column-3">20700</td>
</tr>
<tr class="row-5 odd child-row-1">
<td class="column-1">Cube 3 - 5</td>
<td class="column-2">63-80</td>
<td class="column-3">21500</td>
</tr>
<tr class="row-6 even child-row-1">
<td class="column-1">Cube 3 - 5</td>
<td class="column-2">100-220</td>
<td class="column-3">20700</td>
</tr>
<tr class="row-7 odd child-row-1">
<td class="column-1">Line 3 - 5</td>
<td class="column-2">10-50 х 40-200</td>
<td class="column-3">27000</td>
</tr>
</table>
There is a nextUntil method in jQuery for traversing the tree. Actually there are a bunch of methods you could use for traversing the tree and you can learn more about them here.
To do this for all rows:
- select each parent row
$('.parent').each(..)
- find the class name
(row-nn)
- add class
(child-row-nn)
to next rows until the next.parent
.
Update on jsf.
$(".parent").each(function() {
var classes = $(this).attr('class').split(' ');
var matches = $.grep(classes, function(item, index) {
return /row-/.test(item);
});
if(matches.length == 1) {
var parent = matches[0];
var selector = '.' + parent;
var childClass = 'child-' + parent;
$(selector).nextUntil('.parent').addClass(childClass);
}
});
精彩评论