2017-05-15 4 views
-1

ich auf dieser Seite dieses sehr nützlich Code irgendwo gefunden zu beheben:Benötigen Sie Hilfe dieses jQuery-Code-Snippet

$('input[type="checkbox"]').on('change', function() { 
    $('input[name="' + this.name + '"]').not(this).prop('checked', false); 
}); 

Allerdings würde ich meine Kontrollkästchen lieber in ihren Klassen zu identifizieren und nicht durch ihre Namen, so dass ich das snippet zu dieser versucht zu ändern:

$('input[type="checkbox"]').on('change', function() { 
    $('input[class="' + this.class + '"]').not(this).prop('checked', false); 
}); 

Aber das funktioniert nicht, aus irgendeinem Grund. Ich bin mir ziemlich sicher, dass ich einen sehr rudimentären Fehler mache, aber wenn du mir helfen könntest, wäre das großartig.

+3

[https://www.google.com/search?q=how+do+I+ergreifen+die+Klasse+eines+html+elements+in+Javascript+ (https://www.google.de)/search? q = wie + tun + ich + Zugang + die + Klasse + von + an + html + Element + in + javascript & gws_rd = cr & ei = ebgZWdqJKcGpsAGImaz4Bw) – CBroe

Antwort

0

Um die Klasse aus Ihrer Eingabe zu erhalten, verwenden Sie jQuery attr und asign einer Variablen:

jQuery Attribute Selector

Wie stated by e_i_pi in den Kommentaren, mit var class ein wenig sicherer, da sie den Umfang der Variablen schränkt Klasse, um die Funktion wird definiert, in

var class = $(this).attr('class'); 

Alle zusammen:.

+0

Danke dafür, es funktionierte, nachdem ich es eine kleine zwicken gab (ich änderte "Klasse" zu "Klassenname"). –

+0

@NO. Sie haben nach jQuery gefragt, deshalb habe ich den jQuery-Selektor 'attr ('class') geschrieben, funktioniert aber auch, wenn Sie die Eigenschaft DOM className von JavaScript verwenden. Solange es geholfen hat und du es zur Arbeit gebracht hast, ist das was zählt :) –

+1

FYI 'var class = $ (this) .attr ('class');' ist ein wenig sicherer, da es den Gültigkeitsbereich der Variablen 'class einschränkt 'zu der Funktion, in der es definiert ist. –

0

element.class ist kein gültiges DOM-Eigenschaft:

console.log(document.getElementById('test').class);
<div id="test" class="foo"></div>

Sie haben stattdessen element.className zu verwenden:

console.log(document.getElementById('test').className);
<div id="test" class="foo"></div>