2016-11-27 2 views
0

var id Wert ändert sich dynamisch. Wie kann ich class='current' zu der Liste mit dem gleichen Text hinzufügen. Zum Beispiel, wenn id=1,Wie man eine Klasse zu einem `li` Element basierend auf einem Text innerhalb von jQuery hinzufügt

<li class="current"><a href="http://localhost/myweb/index.php/blog/index">1</a></li> 

habe ich versucht, dies aber nicht funktioniert.

<ul class='pagination'> 
<li>&lt;</li> 
<li><a href="http://localhost/myweb/index.php/blog/index">1</a></li> 
<li><a href="http://localhost/myweb/index.php/blog/index/2">2</a></li> 
<li><a href="http://localhost/myweb/index.php/blog/index/3">3</a></li> 
<li><a href="http://localhost/myweb/index.php/blog/index/2">&gt;</a></li> 
</ul> 

<script> 
$(window).load(function() { 
    var id = 1; 
    $('.pagination ul li').each(function(){ 
     if($this.val() == id) 
     { 
      $this.addClass("current"); 
     } 
    }); 

}); 
</script> 
+0

* ... die Liste mit dem gleichen Text finden müssen. * Bitte klären. – zer00ne

+0

val ist nicht korrekt. Sie suchen nach innerHTML. JQUERY MANUAL: 'Die Methode .val() wird hauptsächlich verwendet, um die Werte von Formularelementen wie Eingabe, Auswahl und Textbereich abzurufen. Wenn eine leere Sammlung aufgerufen wird, wird sie undefiniert zurückgegeben. –

+0

Versuchen Sie in der JQuery-Welt 'text' anstelle von val. Außerdem ist es $ (this), nicht $ this. –

Antwort

1

Sie hatten die folgenden drei Fragen

  1. Sie haben die Wähler als $('.pagination ul li') was falsch ist und es sollte entweder $('.pagination li') oder $('ul.pagination li')
  2. und Sie verwendet $this statt $(this) an zwei Stellen
  3. Dann, um den Wert zu vergleichen, sollten Sie $(this).find('a').text() statt verwenden $this.val() da Sie den Text innerhalb des anchor Tag

Arbeitsprobe

.current { 
 
    background-color: green; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<ul class='pagination'> 
 
<li></li> 
 
<li><a href="http://localhost/myweb/index.php/blog/index">1</a></li> 
 
<li><a href="http://localhost/myweb/index.php/blog/index/2">2</a></li> 
 
<li><a href="http://localhost/myweb/index.php/blog/index/3">3</a></li> 
 
<li><a href="http://localhost/myweb/index.php/blog/index/4">4</a></li> 
 
</ul> 
 

 
<script> 
 
$(window).load(function() { 
 
    var id = 1; 
 
    $('ul.pagination li').each(function(){ 
 
     if($(this).find('a').text() == id) 
 
     { 
 
      $(this).addClass("current"); 
 
     } 
 
    }); 
 

 
}); 
 
</script>

Verwandte Themen