2011-11-03 62 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(); 
    });