2014-10-20 197 views
0

最接近的div我有DOM結構查找具有特定類

<div id="content"> 
    <div id="wrapper"> 
     <input type="text" id="search" /> 
    </div> 
</div> 
<div class="subContent"> 
</div> 
<div class="subContent"> 
</div> 

我想選擇上輸入的輸入框的事件,這是最接近輸入框<div class="subContent">

$('#search').on('keypress', function(){ 
    $(this).parent().parent().next(); 
}); 

有沒有更好的方法來做到這一點?

回答

2
$(this).closest('#wrapper').nextAll('.subContent').first() 

這樣,你可以將其更改爲使用類

+0

'#wrapper'沒有兄弟姐妹 – Musa 2014-10-20 17:16:12

+1

應該是'$(this).closest(「#content」)'來獲取正確的父親。 – scrappedcola 2014-10-20 17:21:19

+0

@scrappedcola我認爲內容是整個頁面和子內容可以模塊化 – qwertymk 2014-10-20 17:34:40

0

我想這可以幫助你

$("#search").click(function() { 
    $(this).closest("div.module").hide(); 
}); 

Hiding the closest div with the specified class

+0

你意識到他正在尋找最親密的兄弟姐妹,而不是最親密的父權?你的回答並不能解決手頭的問題。 – scrappedcola 2014-10-20 17:17:52

0

使用這可能重複: -

<html> 
    <script src="http://code.jquery.com/jquery-1.9.1.js"></script> 
    <div id="content"> 
     <div id="wrapper"> 
      <input type="text" id="search" /> 
      <div class="subContent" style = 'background-color:red;'>div1</div> 
      <div class="subContent" style = 'background-color:red;'>div2</div> 
      <div class="subContent" style = 'background-color:red;'>div3</div> 
     </div> 
    </div> 
    </html> 
    <script> 
    $('#search').on('keypress', function(){ 
     $(this).next().css("background-color", "blue"); 
    }); 
    </script> 
相關問題