2013-09-24 8 views
6

を使用して特定の要素を削除します。今の場合でも、testBoxrightboxの最初の子であるとは限りません。私は今、私はクラスが<code>testbox</code>ある玉葉押されたときには、div要素を削除する必要があることを、ボタンを持って、次のHTML</p> <pre><code><div class='rightbox'> <div class'testBox'> </div> </div> </code></pre> <p>を生成し、JavaScriptを持って見つけて、純粋なJavaScriptの

どうすれば見つけて削除できますか?その後、それが子どもとしてrightbox内に存在するかどうかテストしますか?

答えて

14

たとえば、querySelector()を使用して要素を見つけてからparentNoderemoveChild()の組み合わせを使用して削除します。

var el = document.querySelector('.testBox'); 
el.parentNode.removeChild(el); 

Example Fiddle

+0

を使用して実装されているが、これは子ノードに使用可能なのですか? – Marc

+0

@Marcどういう意味ですか? – Sirko

+0

このアプローチはメモリリークを引き起こしますか? dom要素はメモリ内で破棄されないため、親ノードとの関連付けが解除されます。 –

-6

(注)この

$(".rightBox").find("div").eq(0).remove(); 
$(".rightBox").find("div.testBox").remove(); 

を試してみてください。これは、jQueryの

+3

これはJqueryであり、純粋なjavascriptではありません – Marc

+0

@ Marc:私は答えで指定しました。あなたはそれを読んでいたはずです。答え自体のシナリオを説明した後でさえ、誰でも下降投票を正当化することができればよいでしょう。 –

+0

@GaneshPandhereあなたの答えは正当にdownvotedされました。おそらく** **あなたは**純粋なjavascript **を使用して、** jQuery、Prototypeなどの追加ライブラリを使用しないことを意味する**のタイトルを読んでください。 – Bogdan

5
var testBoxes = Array.prototype.slice.call(document.querySelectorAll('.testBox')); 

testBoxes.forEach(function(testBox) { 
    testBox.parentNode.removeChild(testBox); 
}); 
1
var els = document.getElementsByTagName("div"); 
var el; 
for(var i = 0, ceiling = els.length; i < ceiling; i++) { 
    el = els[i]; 
    if(el.className == "testbox") { 
     el.parentNode.removeChild(el); 
     break; 
    } 
} 

var presentAsChildWithinRightbox = false; 
for(var i = 0, ceiling = els.length; i < ceiling; i++) { 
    el = els[i]; 
    if(el.className == "rightbox") { 
     var childNodes = el.childNodes; 
     for(var j = 0, ceiling2 = childNodes.length; j < ceiling2; j++) { 
      if(childNodes[j].className == "testbox") { 
       presentAsChildWithinRightbox = true; 
       j = ceiling2; 
       i = ceiling; 
      } 
     } 
    } 
} 
if(presentAsChildWithinRightbox) 
    alert("A div with classname childbox has a child div with classname testbox"); 
else 
    alert("A div with classname childbox does not have a child div with classname testbox"); 
関連する問題

 関連する問題