jQuery基于下一个元素更改td类

时间:2014-04-06 10:22:37

标签: javascript jquery html

我的表输出可能如下所示:

<tr class="parent" id="someunique1">
<td class="more">IP</td>
<td>blabla</td><td>131313</td><td>04.04.2014, 22:51:02</td>
<td class="redtr">Yup</td>
</tr>

<tr class="parent" id="someunique2">
<td class="more">IP</td>
<td>blaabla</td><td>blarblar</td><td>04.04.2014, 11:33:47</td>
<td>Nope</td>
</tr>

<tr class="child">

使用jQuery,我怎样才能删除这个类&#34;更多&#34;从第一个父tr下的第一个td,如果下一个tr类是另一个父类?

在上面的示例中,我想保持&#34;更多&#34;作为第二个tr的类,但不是第一个,因为它跟随另一个父tr。

任何帮助表示赞赏: - )

4 个答案:

答案 0 :(得分:2)

尝试

$('.parent + .parent').prev().find('td.more').removeClass('more')

演示:Fiddle

答案 1 :(得分:0)

尝试这样:

$('#someunique1').children().removeClass('more');

JS小提琴:http://jsfiddle.net/4yr4R/1/

答案 2 :(得分:0)

尝试:

$('tr.parent').each(function() {
    if($(this).next('tr').find('.more').length > 0) {
        $(this).find('.more').removeClass('more');        
    }
});

这会循环遍历tr的每个parent,如果下一个tr包含类more的元素,它将从元素中删除该类当前more内的tr级,但不是第二个,因为它会将其他tr作为下一个

答案 3 :(得分:0)

尝试this

$('tr').each(function(index, element) {
    if ($(this).next('tr').hasClass('parent')) {
         $(this).find('.more').removeClass('more');   
    }
});

对于每个tr,我们检查下一个tr是否拥有parent类,如果是,我们只删除其子级中的more类。