如果在jQuery中有classClass,请不要隐藏

时间:2011-09-28 14:11:22

标签: jquery

好的,开始说这很难用单词来解释。

所以我在这里设置了一个示例:http://jsfiddle.net/AFhvS/2/

我在PHP中有一个代码,如果填充了,则显示带有X .sletindtastningfelt的span元素。

在jsfiddle中,它位于js字段的底部。

jQuery(document).ready(function() {
    $('#smeal-1-1').show();
    $('#smeal-1-1').addClass("upstartRemoveClass");

    $('#smeal-1-2').show();
    $('#smeal-1-2').addClass("upstartRemoveClass");
}); 

好的,现在它出现在前两个输入字段的前面。

现在它做的是当你点击4 tr(输入字段)中的一个时,它会隐藏其他X并保持该字段前面的那个。这是由.end().siblings().find('.sletindtastningfelt').hide();

引起的

如果它有类" upstartRemoveClass",我希望更改此过程。因此,如果它具有类upstartRemoveClass,则当您单击tr(输入字段)

时,它不应该像其他类似一样隐藏

4 个答案:

答案 0 :(得分:2)

也许您可以使用:not(.className)

.end().siblings().find('.sletindtastningfelt:not(.upstartRemoveClass)').hide();

答案 1 :(得分:1)

这只需要一个条件:

if($("someElement").hasClass("upstartRemoveClass"))
{
   // do something
}

答案 2 :(得分:1)

如何使用not

像这样:

.end().siblings().find('.sletindtastningfelt').not(".upstartRemoveClass").hide();

这能否为您提供所需的结果?

答案 3 :(得分:0)

上面使用.not():not()的答案是有效的,但您也可以稍微更改一下逻辑,并在隐藏其余内容后显示任何.upstartRemoveClass

$(this).closest('tr')
       .find('.sletindtastningfelt')
       .show()
       .end()
       .siblings()
       .find('.sletindtastningfelt')
       .hide();

$('.upstartRemoveClass').show();

在这种情况下,它可能不是最佳选择,但它有时很有用,例如消除复杂性。