2011-11-03 63 views
0

您好我有一个关于jquery的问题 我该如何选择我的html结构中的“First-First”,当鼠标进入主体时? html结构:jQuery找到子女

<div id="main"> 
    <div class="first"> 
     <div class="first-first"></div> 
     <div class="first-second"></div> 
    </div> 
</div> 

这是否是这样做的探测器方式?

$("div.main").mouseenter(function() { 
     $(this).child(".first").next(".first-first").show(); 
    }).mouseleave(function() { 
     $(this).child(".first").next(".first-first").hide(); 
    }); 
+0

不是真的,'$(本).find( “第一个第一。”)显示();'是不够假设你只有一个。 –

+0

@ShadowWizard'.find()'很慢。 Marnix的答案更快,效果相同。 –

+0

@tandu就我所知它只是别名,在幕后完全一样。你能证明吗? –

回答

1

也许

$("#main").mouseenter(function() { 
    $('.first-first', this).show(); 
}).mouseleave(function() { 
    $('.first-first', this).hide(); 
}); 
1

怎么样用一个简单的选择:

$("div.main").mouseenter(function() { 
    $(".first > .first-first", this).show(); 
}); 
+0

@DougOwings对不起,编辑。 – Marnix

0

你接近:

$("div.main").mouseenter(function() { 
     $(this).children(".first").children(".first-first").show(); 
    }).mouseleave(function() { 
     $(this).children(".first").children(".first-first").hide(); 
    }); 

甚至更​​快:

$("div.main").mouseenter(function() { 
     $(this).find(".first-first").show(); 
    }).mouseleave(function() { 
     $(this).find(".first-first").hide(); 
    }); 
0
$('div#main').mouseenter(function() { 
    $("div.first div.first-first", this).show(); 
}).mouseleave(function() { 
    $("div.first div.first-first", this).hide(); 
}); 

这会做

0
$("div.main div:first div:first").show(); 
0
$(this).find('.first-first').show(); 

您应该使用find()功能。

0

您可以简化这一点。你应该probally使用mouseovermouseenter

$("div.main").mouseover(function() { 
     $(".first-first").show(); 
    }).mouseleave(function() { 
     $(".first-first").hide(); 
    });