-1

我有一组带有两个标签的 TD。我想要一种方法来找到一个标签并隐藏另一个。

这是我到目前为止所拥有的,

if($('td').find('.mark')) {
       $('.warning').hide();
    }

但我只希望它隐藏特定 TD 中的 .warning 而不是所有 .warning 标签。

这是小提琴,http://jsfiddle.net/amQ4G/2/

谢谢

更新

抱歉,我搞砸了我正在使用的 HTML,这是我希望它适用的 HTML 版本,http://jsfiddle.net/amQ4G/9/

标签位于单独的 TD 中,一个存在于一个 TD 中,另一个隐藏在旁边的 TD 中。

4

4 回答 4

2

您可以使用前面的兄弟选择器:

$('td .mark + .warning').hide()

或者更详细地说:

$('td').find('.mark').next('.warning').hide()
于 2013-05-03T18:55:56.627 回答
1

也可以简单写成如下

$('tr').has('.mark').find('.warning').hide()

根据问题的更新更新

于 2013-05-03T19:03:40.247 回答
0

这是一种解决方案(针对已编辑的问题):

$('.mark'). //select all elements with the class 'mark'
parent(). //select the parent of all of those elements
parent(). //my grandpapy selector
find('.warning'). //find the children with the class 'warning'
hide(); //hide yo kids, hide yo wife, and hide yo husband cause they jQuerying everybody

http://jsfiddle.net/amQ4G/12/

于 2013-05-03T18:55:26.753 回答
0

你可以这样试试吗

$(document).ready(function(){
    if($('td').find('.mark')) {
       $('.mark').parent('td').find('.warning').hide();
    }
});

更新小提琴链接http://jsfiddle.net/amQ4G/6/

于 2013-05-03T18:58:38.243 回答