0

私は現在、このようなテーブルを持っています...

 <table>
    <tr>
      <td>1</td>
      <td>2</td>
      <td><a href="#" class="remove">Remove</a></td>
    </tr>
    <tr>
      <td>1</td>
      <td>2</td>
      <td><a href="#" class="remove">Remove</a></td>
    </tr>
    </table>

削除リンクをクリックすると、その現在のを非表示にしたいと思います。これは私が試した次のコードですが、運がありません。

$(".remove").click(function() {

  $(this).parent("tr").hide();

}); 
4

3 に答える 3

5

階層の最上位を表示するには、jqueryのclosest()関数が必要です。親は1つのレベルだけに見えます。

$(".remove").click(function() {

  $(this).closest("tr").hide();

}); 
于 2012-11-09T15:51:47.260 に答える
4

この.parent()メソッドは、直接の親のみを調べます。.closest()次の方法で、さらに1レベル上に移動する必要があります。

$(this).closest("tr").hide();

.parent()または、(何が起こっているのかを知るために) 2回呼び出すこともできます。

$(this).parent().parent().hide();

渡すセレクターは、一致する最初の祖先を返すのでなく、一致する場合.parent()に親要素を返すために使用されます。上記の例では何も渡していないことに注意してください。これは問題なく機能します。.parent()

これが実際のです。

于 2012-11-09T15:51:49.013 に答える
1

closest()の代わりに使用parent()

$(".remove").click(function() {
  $(this).closest("tr").hide();
}); 

更新されたフィドル

于 2012-11-09T15:52:32.447 に答える