在课堂上显示()"提示"发现不起作用

时间:2014-04-20 23:02:36

标签: javascript jquery html

我正在尝试在每个“animate”类中找到一个“tip”类,然后如果在其中找到了一个提示类,则显示带有show()的“animate”类。

我的代码似乎有问题,因为它根本不起作用。

我的尝试:

if($('.animate').find('.tip').length === 1) {
    $(this).show();
}

HTML

<div class="foobar">
    <div class="animate">
        <div class="tip">- This is a tip.</div>
    </div>
    <div class="animate">
        <div>- This is not a tip.</div>
    </div>
    <div class="animate">
        <div class="tip">- This is a tip.</div>
    </div>
</div>

2 个答案:

答案 0 :(得分:4)

您需要依次考虑每个$('.animate');

$('.animate').each(function () {
    if ($(this).find('.tip').length) {
        $(this).show();
    }
});

...虽然您也可以使用has() selector在一行中执行此操作;

$('.animate:has(.tip)').show();

但是,我猜你也想隐藏与选择器不匹配的元素,所以你可以通过(demo);

来做
$('.animate').each(function () {
    $(this).toggle(!!$(this).find('.tip').length);
});

......或(demo):

$('.animate').hide().filter(':has(.tip)').show();

答案 1 :(得分:1)

我认为您没有得到正确的this问题

$(".animate").each(function(){
    if($(this).find(".tip").length===1){
        $(this).show();
    });
});