2012-03-01 3 views
8

後、私は、このHTML一定数

<div class="control"> 
    <label class="">Label Here</label> 
    <input type="text"> 
    <div class="ui-resizable"></div> 
    <div class="ui-resizable-handle"></div> 
    <div class="ui-resizable-handle ui-resizable-se"></div> 
    <div style="display: inline;" class="delete"><span class="ui-icon ui-icon-closethick">close</span> </div> 
    <div style="display: inline;" class="properties txtbox"><span class="ui-icon ui-icon-wrench">Properties</span></div> 
</div> 

どのように私はjQueryのを使用して、このHTMLから第2、第3、第4のdivを削除することができますがあります....

+0

私はカットするどのような方法があるか、入力フィールドの後に発生しますどのように多くのdivを知らない場合SLICEすべてのdivまたはControl DIVの第二子の後に発生したすべての要素。 .. – HardCode

+0

はい、あなたは ':gt'セレクタを使います。説明は私の答えの更新を参照してください。 –

答えて

6

試してみてください。

 

$('.control').find("div").slice(1, 4).remove(); 
 
4
$('.controll>div:gt(1)').remove(); 

:gtセレクタますあなたは1 theeseより大きい指数はここ3要素とより

ある持っている選択させることは一例です:http://jsfiddle.net/Am7Vw/1/

+0

これは完全に別のサンプルコード$( '。pos_abs.mjx-box> span:gt(150)')を実行しました。 –

-1

あなたが:nth-childを探している、この

$('.control div:nth-child(2)').remove(); 
$('.control div:nth-child(3)').remove(); 
$('.control div:nth-child(4)').remove(); 

それともあなたが同様にこれを行うことができます

$('.control div:nth-child(1)').siblings().remove(); 
+1

あなたの最初の解決策は動作しません。最初の削除後、要素が1つ少なくなるため、インデックスがすべて変更されます。 –

12

を行うことができます。http://api.jquery.com/nth-child-selector/

それは次のように動作します。

$('.control div:nth-child(2), .control div:nth-child(3), .control div:nth-child(4)').remove(); 

最初の要素はインデックス1

UPDATEを持っているので、は、1ベースインデックスを使用しています。私は後に発生しますどのように多くのdivを知らない場合は、この質問への応答ではOPはコメントで

を掲載しました入力フィールドが

答えはこのためにあなたが:gt:選択したい、そうです...すべてのdivまたは コントロールDIVの第二子の後に発生したすべての要素をカットまたはスライスにどのような方法 ありまたは:http://api.jquery.com/gt-selector/

$('.control div:gt(1)').remove() 

:nth-childとは対照的に、あなたはそれらの特定のものを意味する場合は、最初の要素はインデックス0

0

を持っているので:gtは、ゼロベースインデックスを使用しています。

$(".ui-resizable-handle, .delete").remove(); 

をマークアップに関係なく2〜4桁のdivを意味する場合は、nth-child()の回答が有効です。

関連する問題