jQuery addClass给父母和它的兄弟姐妹

时间:2013-04-20 00:03:39

标签: jquery css addclass

我正在尝试将一个类应用于元素的父级和它的兄弟姐妹。到目前为止,我只是通过应用两行jQuery成功,这使得最终结果适用于两个看起来非常难看的阶段。

<style type="text/css">
td.rostered {
    opacity: 0.3;
}
</style>

<table>
<tr class="flight_search">
    <td class="" style="width: 6%; text-align: left"><img id="525" class="roster" src="images/link_image.png" alt="Link Image"></td>
    <td class="" style="width: 7%">Option 1</td>
    <td class="" style="width: 24%">London -<strong>Paris</strong></td>
    <td class="" style="width: 25%">Dep: <strong>0355</strong>  Arr: 0615 (02:20)</td>
    <td class="" style="width: 30%">Boeing 767</td>
    <td class="" style="width: 8%"><a class="rego" href="#">ABCDE</a></td>
</tr>
</table>

当用户点击图像(id =“525”)时,会运行一些ajax将该航班分配给用户的名单。然后它返回id以运行一些jQuery来使表中的那一行变灰,表明它已经是列表。

function set_rostered(id) {
//This line adds the class 'rostered' the siblins of the <td>
$("#" + id).parent().siblings().addClass('rostered');
//This line removes the id so the flight cannot be rostered again and adds the class to the parent <td> itself.
$("#" + id).attr('id', '').parent().addClass('rostered');
} 

有没有办法可以将这两行代码组合在一起,使类同时适用于所有元素(父元素和它的兄弟元素)?

2 个答案:

答案 0 :(得分:1)

尝试将其添加回来(使用addBack()函数):

$("#" + id).parent().siblings().addBack().addClass('rostered');

答案 1 :(得分:0)

$(“#”+ id).attr('id','')。parent()。parent()。children()。addClass('rostered');