Можете ли вы вообще изменить HTML?
JQuery было бы проще (и HTML более описательным), если бы HTML использовал тег <tbody>
для каждой категории, например:
<table class="stats" width="100%">
<tbody>
<tr class="category">
<th scope="rowgroup" colspan="2">Costumes<br /><small>Make your character look uniqe</small></th>
<td width="80"><a href="#" class="delete" id="category:1">Delete</a><br />Invisible</td>
</tr>
<tr class="item">
<td>Godly Weapon<br /><small>Super wepons of gods</small><br /><small>images/godly_weapon.png</small></td>
<td width="120">1000 Athen Coins<br />$1 Paypal</td>
<td width="80"><a href="#" class="delete" id="item:1:1">Delete</a><br />Invisible</td>
</tr>
...
</tbody>
<tbody>
<tr class="category">
<th scope="rowgroup" colspan="2">Costumes<br /><small>Make your character look uniqe</small></th>
<td width="80"><a href="#" class="delete" id="category:2">Delete</a><br />Invisible</td>
</tr>
<tr class="item">
<td>Godly Weapon<br /><small>Super wepons of gods</small><br /><small>images/godly_weapon.png</small></td>
<td width="120">1000 Athen Coins<br />$1 Paypal</td>
<td width="80"><a href="#" class="delete" id="item:2:1">Delete</a><br />Invisible</td>
</tr>
...
</tbody>
</table>
Тогда ваш jQuery можно переписать так:
<script type="text/javascript">
$(document).ready(function() {
$("tr.item .delete").click(function(){
$.post("do.php", { what: "delete", q: $(this).attr("id") });
$(this).parent().parent().fadeOut("fast");
});
$("tr.category a.delete").click(function(e){
$(this).parents('tbody').fadeOut("fast");
});
});
</script>