2013-11-05 100 views
0

我遇到了一个问题,我的代码没有将父母识别为“ul”,而是将其视为类。这个孩子比我认为应该有更广泛的影响。jquery指定孩子和家长

段代码:

<script> 
     $(document).ready(function(){ 
     $("div:last").click(function(){ 
      $("ul").parent(".northern").children(':nth-child(3)').hide(); 
      }); 
     }); 
    </script> 

<section class="northern"> 
      <h2>US</h2> 
      <ul> 
       <li>Princeton</li> 
       <li>Harvard</li> 
       <li>Yale</li> 

      </ul> 
      <div> 
       <input type="button" value="Click Me!"> 
      </div> 
     </section> 
+1

它的作品,因为它应该,它隐藏的按钮,这是北方 http://jsfiddle.net/dTcub/ – Breezer

+0

的第三孩子如果这ISN”不要做你期望的事情,我想你不明白jQuery中的链接是如何工作的。 – Barmar

回答

0

使用.closest()

$(document).ready(function() { 
    $("div:last").click(function() { 
     $("ul").closest(".northern").children(':nth-child(3)').hide(); 
    }); 
}); 

我认为OP希望第三届李项

Fiddle DEMO

$(document).ready(function() { 
    $("div:last").click(function() { 
     $(".northern ul").children(':nth-child(3)').hide(); 
    }); 
}); 
+0

你犯了一个错字。 –

+0

@SrinivasReddyThatiparthy我已经修复它 – Barmar

+0

@Barmar ty我在上面:) –

2

你似乎TH油墨$("ul").parent(".northern")意味着找到其父母具有类别=北部的UL。它的实际含义是找到所有的UL,然后找到他们所有的父母,他们的班级=北部.parent()是一种DOM遍历方法,而不是过滤器。

你大概想的是:

$(".northern > ul").children(':nth-child(3)').hide();