2017-01-23 4 views
0

Ich versuche, die Klassen div1 und intro aus diesem HTML-Code zu entfernen.Der Versuch, removeClass in jquery zu entfernen, schlägt fehl

Snippet Beispiel:

$(function() { 
 
    $('div').on('click', function() { 
 
    alert("Hello"); 
 
    $("div").removeClass("div1"); 
 
    $("p").removeClass("intro"); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="div1">div 1</div> 
 
<div class="div2">div 2</div> 
 
<div class="div3">div 3</div> 
 
<div class="div4">div 4</div> 
 
<p class="intro">This is a paragraph.</p> 
 
<p class="intro">This is another paragraph.</p>

Nun, wenn ich auf dem div klicken ich hallo wach, aber div1 und Intro Klassen werden nicht entfernt. Irgendwelche Vorschläge, was mir hier vielleicht fehlt?

Update: Ich hätte Remove statt removeClass verwenden sollen. Fiddle sample.

+3

Die 'Intro'-Klasse wird in dieser [Fiddle] (https://jsfiddle.net/q251jss3/1/) gerade entfernt. Die 'div1' Klasse wird nicht entfernt, da Sie auf' p' Elemente zielen, von denen keines die 'div1' Klasse hat. – mcon

+0

Leider habe ich versucht, es zu entfernen. Hier ist der aktualisierte Code –

+0

Versuchen Sie, das Element aus dem Display verschwinden zu lassen? 'removeClass()' macht das nicht. Sie wollen nur 'remove()'. – mcon

Antwort

1

Es scheint, das Problem war ein Missverständnis zwischen remove und removeClass. OP wollte ein Element aus dem DOM entfernen, und deshalb remove(), statt zu wollen verwenden sollte die Klasse mit removeClass()

jsfiddle

+0

nur aktualisiert mein Beitrag Sorry, ich habe den falschen Code verwendet –

+0

Können Sie bitte erklären Sie Ihr Problem ein wenig mehr? In der JSfiddle werden sowohl die Intro-Klasse als auch die Klasse div1 entfernt, wenn Sie auf ein div klicken. Was versuchst du zu erreichen? Ich verstehe Ihr Problem möglicherweise nicht richtig. – Hodrobond

+0

Es wird nicht in meinem Fenster entfernt –

-1

Sie der Auswahl p Elemente zu entfernen und zu versuchen, div1 und div2 Klassen zu entfernen sind auf div ‚s:

$(function() { 
 
    $('div').on('click', function() { 
 
    
 
    $("div").removeClass(function (index, className) { 
 
     return (className.match (/div[0-9]/g) || []).join(' '); 
 
    }); 
 
    $("p").removeClass("intro"); 
 
    }); 
 
});
.div1, .div2, .div3, .div4 { 
 
    border: 1px solid red; 
 
    } 
 

 
.intro { 
 
    color: blue; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="div1">div 1</div> 
 
<div class="div2">div 2</div> 
 
<div class="div3">div 3</div> 
 
<div class="div4">div 4</div> 
 
<p class="intro">This is a paragraph.</p> 
 
<p class="intro">This is another paragraph.</p>

+0

habe gerade meinen Beitrag aktualisiert sorry ich habe den falschen Code benutzt –

+0

Dein Code und deine Geige stimmen nicht überein, fehlt mir etwas? – Yaser

0

Wenn Sie schauen, um die Elemente aus dem DOM, führen Sie das Skript wie folgt zu entfernen:

$('div').on('click',function(){ 
 
    alert("Hello"); 
 
    $(".div1").remove(); 
 
    $(".intro").remove(); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="div1">div 1</div> 
 
<div class="div2">div 2</div> 
 
<div class="div3">div 3</div> 
 
<div class="div4">div 4</div> 
 
<p class="intro">This is a paragraph.</p> 
 
<p class="intro">This is another paragraph.</p>

removeClass('intro1') wird entfernen Sie die intro Klasse Eigenschaft aus dem Objekt. remove() ist die Funktion, die es aus dem DOM selbst entfernt.

+0

Ja, das funktioniert, aber meine Frage ist, warum mein Code nicht funktioniert? Mache ich etwas falsch ? –

+0

danke für die Unterstützung mit der remove-Funktion in jquery, die geholfen hat. Es scheint, als ob ich removeClass verwendet habe, was falsch ist und Remove verwenden sollte –

Verwandte Themen