Zunächst einmal; Es tut mir leid, wenn meine quesiton irrelevant ist, weil ich Neuling bin auf jQuery
jQuery Zugangsdaten-url Element und prüfen Sie mit URL-Parameter
ich ein Menü in meiner Website. Hier ist HTML;
<ul class="page-sidebar-menu">
<li data-link="index.php"><a href="index.php">Home</a></li>
<li data-link="logout.php"><a href="logout.php">Logout</a></li>
</ul>
Ich nehme URL-Pfad mit li data-link
zu vergleichen active
Klasse li
hinzufügen, aber leider nicht definiert es zurück.
Hier ist mein Javascript/jQuery;
var pathname = window.location.pathname; // Returns path only
var encPath = encodeURIComponent(pathname); // Encoded URL
var splPath = encPath.split('%2F');
var cleanUrl = splPath.pop(); // Clean Url
var dataUrl = $('ul.page-sidebar-menu > li').attr('data-link');
$(dataUrl).each(function(i) {
if(dataUrl === cleanUrl) {
dataUrl.addClass('active');
}
});
Also, was ist falsch mit meinem Code? Wie kann ich es reparieren? Jede Hilfe sehr geschätzt.
PS: Sorry für schlechtes Englisch.
'$ (this) .data ('link')' unnötig bevölkert den internen Cache spielen, besser zu verwenden '$ (this) .attr ('data-link')' oder 'this.dataset.link' – Satpal
@Satpal oh .. Aber ich dachte mit' .data' war der beste Weg .. Danke für die Info .. –