2016-06-23 3 views
1

So bekam ich eine grundlegende Seite, wo ich markieren muss, wo mein Benutzer ist. Bekam ein Nav mit ul> li> aJquery/Javascript Lösung für URL passt Href dann fügen Sie eine Klasse hinzu

mein ideia ist es, die URL der aktuellen Seite zu erhalten, und mit einem bestimmten href von einem "a" übereinzustimmen.

Die Struktur:

<header> 

<a href="#" id="toggle-nav"><span class="trigger"></span></a> 

<nav> 
    <ul id="nav-top"> 
     <li><a href="../Index/Index.html" title="Home">Home</a></li> 
     <li><a href="#" title="#">Aluno</a> 
      <ul class="sub-menu"> 
       <li><a href="../Index/areadoaluno.html" title="Area do Aluno">Area Do Aluno</a></li> 
       <li><a>sub-item</a></li> 
       <li><a>sub-item</a></li> 
      </ul> 
     </li> 
     <li><a href="#">Json</a> 
      <ul class="sub-menu"> 
       <li><a href="Json.html" title="Teste Json">Json Teste</a></li> 
       <li><a>sub-item</a></li> 
       <li><a>sub-item</a></li> 
      </ul> 
     </li> 
    </ul> 
</nav> 
</header> 

und die jquery mit Javascript (es ist ok diese beiden Jungs zu mischen?):

var url = window.location.pathname.split('/'); 
var i; 
var location = ""; 

for(i = 0; i < url.length; i++) 
    { 
     location += url[i];  
    } 


    $('#nav-top a').each(function(){ 

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

     if(location.indexOf(href) > -1) 

     { 
      alert("Yes!"); 

     } 

    }); 
}); 

Im studing JQuery und jscript noch so im Art neuer, Ich arbeite mit einer Lösung, die einen Teil meiner URL mit einem bestimmten href finden und übereinstimmen kann, unabhängig von der Größe der URL und wo ich hingehe.

+0

gemacht wird Es gibt bereits Dutzende von Antworten auf "Wie man einen aktuellen Link markiert" hier auf StackOverflow - Goog ist dein Freund. –

+0

Welche 'href' versuchen Sie zu finden? Das würde uns ermöglichen, den Fehler zu reproduzieren/erstellen Sie eine jsfiddle – wmash

+0

wäre die "href" der aktuellen Seite, Beispiel .. im zu Hause, so dass die Home-Taste eine "aktive" Klasse zu gewinnen. Also, er überprüft die URL, wenn etwas hat, was auf einem der a hrefs erscheint, er bekommt das a und setzt eine aktive Klasse. @ RokoC.Buljan -> Überprüfen Sie bereits den Stapel für Antworten, nicht etwas zu finden, das mir helfen kann. Diese eine Lösung, die ich poste, verstehe ich übrigens durch diese Antworten. –

Antwort

0

Arbeiten jsfiddle

ich glaube, Sie wie gezeigt tun könnte. Keine Notwendigkeit, durch url Schleife und keine Notwendigkeit für zusätzliche Variable location.

var url = window.location.pathname.split('/'); 

$('#nav-top a').each(function() { 
    var href = $(this).attr('href'); 
    if (url.indexOf(href) > -1) { 
     alert("Yes!"); 
    } 
}); 

Und ja, es ist vollkommen in Ordnung, jQuery und JS zu mischen. jQuery ist eine JS-Bibliothek, so dass es für

+0

Funktioniert zwar auf Geige, aber hier funktioniert es nicht, irgendwas fehlt ... mein Standort testet es hier an der CPU (; file: /// C:/Users/....) ... das könnte etwas haben mit der Lösung zu tun, es funktioniert nicht? –

+0

Erhalten Sie Fehler im Protokoll? – wmash

+0

nein, nicht eine einzige. Es scheint nur, dass, wenn er die href und url passt er nicht ein "gleich", weil meine anderen funktioniert. –

Verwandte Themen