Einfache hasclass
und this.addclass
nichtWarum ist diese jQuery funktioniert nicht
if ($('.sidebar-menu-container li').hasClass('current-menu-item')) {
$(this).addClass('expanded');
}
Einfache hasclass
und this.addclass
nichtWarum ist diese jQuery funktioniert nicht
if ($('.sidebar-menu-container li').hasClass('current-menu-item')) {
$(this).addClass('expanded');
}
Sie verwendet haben $(this)
innerhalb document.ready
arbeitet so die $(this)
bezieht sich auf das Dokument nicht die ($('.sidebar-menu-container li')
.using this
außerhalb jeder Funktion bezieht sich auf das globale Objekt
für Ihren Code zu arbeiten
$(document).ready(function($) {
$('.sidebar-menu-container li').each(function(){
if ($(this).hasClass('current-menu-item')) {
$(this).addClass('expanded');
}
})
});
.expanded {
background:red !important;
border: 1px solid green;
}
li {
background: #ccc;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="sidebar-menu-container">
<li class="current-menu-item">asdasdasdasd</li>
<li>asdasdasdasd</li>
</div>
oder einfach
jQuery(document).ready(function($) {
$('.sidebar-menu-container li.current-menu-item').addClass('expanded')
});
.expanded {
background:red !important;
border: 1px solid green;
}
li {
background: #ccc;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="sidebar-menu-container">
<li class="current-menu-item">asdasdasdasd</li>
<li>asdasdasdasd</li>
</div>
Der Selektor $('.sidebar-menu-container li')
mehrere Elemente zurückkehrt, so dass, wenn eines dieser Elemente, die Klasse hat current-menu-item
es true
sein wird. Sie haben eine Schleife dafür verwenden, oder besser noch:
$('.sidebar-menu-container li.current-menu-item').addClass('expanded');
Der obige Code alle li
mit .current-menu-item
Klasse auswählt und expanded
Klasse für sie hinzufügen. Keine Schleife oder Bedingung benötigt, jQuery tut es für Sie.
Ihr Element mehr Elemente zurück, die Art und Weise ist es nicht diesen
jQuery(document).ready(function($) {
$("li").click(function(){
if ($(this).hasClass('current-menu-item')) {
$(this).addClass('expanded');
}
});
});
$('ul.sidebar-menu-container li.current-menu-item').addClass('expanded')
.expanded {
background:red !important;
border: 1px solid green;
}
li {
background: #ccc;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="sidebar-menu-container">
<li class="current-menu-item">asdasdasdasd</li>
<li>asdasdasdasd</li>
</ul>
LI
sind UL
Ich glaube, Sie in Ordnung sein würde zu verwenden:
$('.sidebar-menu-container li.current-menu-item').addClass('expanded');
Sie brauchen nicht die, wenn.
Oh ja, wie Guradios Vorschlag! – Mark
$(document).ready(function() {
$('.sidebar-menu-container li.current-menu-item').addClass('expanded');
});
.expanded {
background:red !important;
border: 1px solid green;
}
li {
background: #ccc;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="sidebar-menu-container">
<li class="current-menu-item">asdasdasdasd</li>
<li>asdasdasdasd</li>
</div>
Ihr 'if()' macht wenig Sinn. – charlietfl
Warum nicht? Er möchte, dass das spezifische div bestimmte Klassen enthält – SilverSurfer
Alles, was Sie tun, ist '$ ('. SomeClass'). HasClass ('someClass')' ... warum würden Sie das jemals brauchen? Natürlich hat es diese Klasse ...Es ist in der Original-Selektor – charlietfl
Es wäre hilfreich, wenn Sie das, was Sie erreichen wollen. – Catalyst
Bitte zeigen Sie alle relevanten Code in der Frage. Siehe [MCVE]. Fragen sollten in sich geschlossen sein. Wir sollten die Website nicht einfach verlassen müssen, um die Grundlagen Ihres Problems zu überprüfen. Nehmen Sie sich auch etwas Zeit, um [ask] – charlietfl
zu lesen, Sie können eine Zeile '$ ('. Sidebar-menu-container li.current-menu-item') verwenden. AddClass ('expanded')' – guradio