2012-05-11 5 views
1

のすべての発生を削除します。jqueryの私は、次のしている要素

<div id="preview_invoice_container"> 
<table class="page_container"> 
    <tr> 
     <td width="30%" id="position_0" class="box_container"> 
      <div class="box_logo"></div> 
     </td> 
     <td width="30%" id="position_1"> 
      <div class="box_logo"></div> 
     </td> 
     <td width="30%" id="position_2"></td> 
    </tr> 
</table>   

そして私は、DIV =「preview_invoice_container」

内クラス=「box_logo」 のみのすべての出現箇所を削除したいです

私は以下を試しました:$('#preview_invoice_container').find('.box_logo').removeClass("box_logo");

しかし、それは動作しません。どんな助けもありがとう。

+1

をそれを一読して1時間か2時間を取っても価値がある私は何をしたいことだと思います[jQuery API](http://api.jquery.com)の最初から最後まで。それは実際にはそれほど長くかかりますが、長期的にはあなたには終わりがありません。おそらく1週間以内に2時間、上を返すでしょう。 :-) –

+0

あなたのコードは正常に動作します - http://jsfiddle.net/jSFFK/:あなたが質問したように、クラスのすべての出来事を削除します。要素自体は削除されません – fcalderan

+1

あなたの問題は2つの部分:(1)右の要素を見つける(あなたがすでに持っているもの)。そのためにはセレクターを取得する必要があります。 [jQueryセレクタのドキュメント](http://api.jquery.com/category/selectors/)(2)これらの要素を削除してください。それはもちろん、[documentation](http://api.jquery.com/category/manipulation/)にもあります。[かなり頻繁にstackoverflowで](http://stackoverflow.com/search?q=jquery+ +要素を削除)。 –

答えて

3

.removeClass()は、実際に一致するすべての要素から指定されたクラスを削除しますが、要素自体は削除されません。

$('#preview_invoice_container').find('.box_logo').remove(); 
+0

ありがとう...まだ、jQuery – Yannick

1

は、指定されたIDの中からクラス.box_logoを持つ要素の出現をすべて削除します:

$('#preview_invoice_container .box_logo').remove(); 
+0

+1は、 'children()'や 'find()'を文字列に変換しないためです。なぜ人々がそれを行うのか分かりません。それはまったく必要ありません。 –

+0

@ChrisPratt私は、2つの間でかなりのパフォーマンスの違いを示す簡単なテストを行いました:http://jsperf.com/fvdq - 私はまだjsperfに慣れているので、テストセットアップ/ティアダウン/それ以外の場合は「完全に不要」と思われます。セレクタスキームがどのように機能するか(右から左へ)ということは、私がやや賢明な結果になることを漠然と思い起こしています。 – Carl

+0

@Carl:セレクタは右から左に評価されますが、有効なCSS3セレクタである限り、jQuery(またはSizzle)は最近のブラウザでは 'querySelectorAll'を使用します(うまくいけば)。 –

0
$('div.box_logo', '#preview_invoice_container')​​​​​.remove(); 
関連する問題