Frage

ich eine Sidebar Navigation habe, dass die Listen Blog Eintrag Titel auf der Seite der Seite. Ich versuche, einige Jquery zu schreiben, die den Text in dem Titel der aktuellen ausführlichen Blog-Eintrag Seite überprüfen werden und es mit dem entsprechenden Titel in der Navigationsleiste anzeigen lassen, so dass ich eine Klasse-Stil für einen aktiven Zustand Link anwenden kann ... aber ich bin nicht ganz bekommen es! Hier ist der Link zu einer Beispielseite: http: // ncw kommerzielle .com / Immobilien-Inserate / eastpoint-plaza-lot.html , und unter meinem aktuellen Code ist. Ich habe auch versucht, mit:. Enthalten aber kann nicht herausfinden, wie das mit einer variablen zur Arbeit zu kommen, anstatt direkter Text

$('.single-journal-entry-wrapper .journal-entry .title').each(function(){ 
      var activeTitle = $(this).text();
      $(".feedburnerFeedBlock .headline a").filter(function(index) {
         return $(this).text() == "activeTitle";
      }).parent().addClass("activeTitle");
}); 
War es hilfreich?

Lösung

Ich glaube, Sie sind sehr, sehr nahe (vorausgesetzt, die Selektoren korrekt sind). Entfernen Sie einfach die Anführungszeichen um activeTitle (sonst Sie gegen die Saite "activeTitle" vergleichen):

$('.single-journal-entry-wrapper .journal-entry .title a').each(function(){ 
      var activeTitle = $(this).text();
      $("#sidebar1 .section .headline a").filter(function(index) {
         return $(this).text() == activeTitle;
      }).parent().addClass("activeTitle");
});

Sie können auch mit dem :contains() Selektor:

$('.single-journal-entry-wrapper .journal-entry .title a').each(function(){ 
      var activeTitle = $(this).text();
      $("#sidebar1 .section .headline a:contains('" + activeTitle + "')")
      .parent().addClass("activeTitle");
});

Der Link zur Seite hilft nicht viel. Irgendwie sehe ich nicht, welchen Titel Sie mit dem Link übereinstimmen sollen. Es tut uns Leid.

Update:

Ok ich es herausgefunden. Das Problem war, dass beide Strings (der Titel und die in der Verbindung nicht überein, da der Titel ein   drin (Eastpoint Plaza Lot), wo der Link in der Seitenleiste nicht gehabt hatte. Und obwohl diese wenn Sie .text() auf einen leeren umgewandelt nennen, irgendwie funktioniert es nicht überein.

Nun könnte dies durch den Titel über .html() bekommen gelöst werden und die   mit einem Leerzeichen ersetzen:

$('.single-journal-entry-wrapper .journal-entry .title a').each(function(){ 
      var activeTitle = $(this).html().replace(' ', ' ');
      $("#sidebar1 .section .headline a:contains('" + activeTitle + "')")
      .parent().addClass("activeTitle");    
});

Für die Prüfung kopiert ich alle Ihre HTML-Code und es funktioniert jetzt für mich. Versuche es. Ich denke, das größte Problem ist, dass Titel können HTML haben Zeichen codiert darin, so eine Bibliothek, die sie konvertieren, wenn Sie in mehr Probleme ausgeführt werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top