$(document).ready(function(){
$('#switcher-default').addClass('selected');
$('#switcher button').on('click', function(){
var bodyClass = this.id.split('-')[1];
$('body').removeClass().addClass(bodyClass);
$('#switcher button').removeClass('selected');
$(this).addClass('selected');
console.log(bodyClass);
});
});
//////////////Html Code/////////////
<div id="switcher" class="switcher">
<h3>Style Switcher</h3>
<button id="switcher-default">
Default
</button>
<button id="switcher-narrow">
Narrow Column
</button>
<button id="switcher-large">
Large Print
</button>
</div>
Dieser Code funktioniert und ich kann sehen, was es auch tut, aber die 1 in den eckigen Klammern verwirrt mich. Bedeutet es, die ID zu teilen, wo "-" verwendet wird, und den ersten Teil zu nehmen? Ich weiß es nicht wirklich? Würde die Hilfe anpreisen.Kann mir jemand erklären, was die eckigen Klammern hier in diesem jQuery Code machen?
'split()' gibt ein Array von * n * Elementen zurück, '[i]' greift auf das 'i'te Element dieses Arrays zu. –
Nur als Randnotiz, ID sollte niemals irgendwelche Daten bringen. Sie haben das Attribut "data-*" dafür. All das zu sagen, dieser Code ist schlecht –
@ A.Wolff: Ich würde nicht sagen "nie." Wenn Sie aus anderen Gründen eine ID für Ihr Element benötigen und Sie auch den eindeutigen Bezeichner von etwas kennen müssen, das dieses Element repräsentiert (wie ein Blogkommentar), sehe ich keinerlei Problem damit, diesen ID Teil der ID zu machen (wie in den Kommentaren in [dieser MSDN-Blogpost] (https://blogs.msdn.microsoft.com/vcblog/2014/06/03/visual-studio-14-ctp/#div-comment-77733)). –