Domanda

Ho una barra laterale di navigazione che elenca blog di titoli giù il lato della pagina.Sto cercando di scrivere qualche jquery che controlla il testo nel titolo della corrente di piena pagina di accesso al blog e di corrispondere con il titolo corrispondente nella barra laterale di navigazione in modo che io possa applicare una classe di stile per uno stato attivo link ...ma io non sono abbastanza ottenerlo!Ecco il link a una pagina di esempio: http://ncw-commercial.com/property-listings/eastpoint-plaza-lot.html, e qui di seguito la mia attuale codice.Ho anche provato con :contiene, ma non riusciva a capire come ottenere che lavorare con una variabile non di testo.

$('.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");
}); 
È stato utile?

Soluzione

Penso che tu sia molto molto vicino (supponendo che i selettori sono corretti).Basta togliere le virgolette activeTitle (altrimenti si confrontano con la stringa "activeTitle"):

$('.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");
});

È inoltre possibile utilizzare il :contains() selettore:

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

Il link alla pagina non aiuta molto.In qualche modo non riesco a vedere che titolo per la corrispondenza con la quale link.Mi dispiace.

Aggiornamento:

Ok, ho capito.Il problema era che entrambe le stringhe (il titolo, il link non corrispondono perché il titolo ha avuto un   in esso (Eastpoint Plaza Lot), dove il link nella sidebar non aveva.E anche se questo viene convertito in un vuoto se si chiama .text(), in qualche modo, non corrisponde.

Ora, questo potrebbe essere risolto da ottenere il titolo via .html() e sostituire il   con uno spazio:

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

Per la prova ho copiato tutto il codice HTML e funziona per me, ora.Dare una prova.Penso che il Problema più grande è che i titoli possono avere codificato in formato HTML e caratteri, in modo da trovare una libreria che li converte se si esegue in problemi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top