特定のDIV内のアンカーがクリックされたらDIV自身を非表示

次のようなHTMLがあって

<body>
<div class="panel">
  <div>
    <a href="#">test1</a>
    <a href="#">test2</a>
    <a href="#">test3</a>
  </div>
</div>
<div class="panel">
  <a href="#">test4</a>
  <a href="#">test5</a>
  <a href="#">test6</a>
</div>
<div class="panel">
  <a href="#">test7</a>
  <a href="#">test8</a>
  <a href="#">test9</a>
</div>
<div class="panel">
  <a href="#">test10</a>
  <a href="#">test11</a>
  <a href="#">test12</a>
</div>
</body>

アンカーがクリックされたときにそのアンカーが含まれるpanelというクラス名のdivを非表示にしたい場合にjQueryでどうかくの?

最初

<script type="text/javascript">
$(document).ready(function(){
    $("div[@class=panel] a").click(function(){
        $(this).parent().hide();
    });
});
</script>

と書いてみたものの、divが入れ子になってしまっているとparent()じゃ入れ子のdivが非表示になってしまいpanelクラスのdivは非表示にできない。

というわけで、以下が正解?

<script type="text/javascript">
$(document).ready(function(){
    $("div[@class=panel]").each(function(){
        var target = this;
        $(this).find("a").click(function(){
            $(target).hide();
        });
    });
});
</script>

結局var targetとしてそこに一旦Xpathで指定した要素をつっこんで解決と。
他にもっとスマートな方法ってありそうな気がしつつ寝る。