Wie lässt sich diese Funktion eleganter in jQuery schreiben? Ich extrahiere hier den URL-String und weise anschließend dem zur jeweiligen Adresse gehörenden Link eine CSS-Klasse zu. Da die Seite bei jedem Klick neu geladen wird, ist es mit einem einfachen removeClass().addClass() nicht getan. Nun gibt es in in jQuery den Selector contains(), womit ich mir wahrscheinlich indexOf() und substr() ersparen könnte, aber trotzdem wieder eine lange Abfrage erstellen muss, oder?
HTML:
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
<script type="text/javascript">
$(document).ready(function(){
var url = window.location.href;
var delimiter = url.indexOf('=');
var adresse = url.substr(delimiter + 1);
if (delimiter != -1) {
if (adresse == 'neueste') {
$('#produkte a').eq(0).addClass('red');
} else if (adresse == 'action') {
$('#produkte a').eq(1).addClass('red');
} else if (adresse == 'adventure') {
$('#produkte a').eq(2).addClass('red');
} else if (adresse == 'rpg') {
$('#produkte a').eq(3).addClass('red');
} else if (adresse == 'sim') {
$('#produkte a').eq(4).addClass('red');
} else if (adresse == 'strategy') {
$('#produkte a').eq(5).addClass('red');
};
};
});
</script>
</head>
<body>
<h1>Produktliste</h1>
<div id="produkte">
<ul>
<li><a href="menu4a.php?genre=neueste">Neueste</a></li>
<li><a href="menu4a.php?genre=action">Action</a></li>
<li><a href="menu4a.php?genre=adventure">Adventure</a></li>
<li><a href="menu4a.php?genre=rpg">RPG</a></li>
<li><a href="menu4a.php?genre=sim">SIM</a></li>
<li><a href="menu4a.php?genre=strategy">Strategie</a></li>
</ul>
</div>
</body>
</html>