2010-02-01 7 views
2

Juste essayer de remplacer le texte du lien hypertexte et je ne trouve pas un moyen de le faire ... J'ai essayé le code ci-dessous, mais, je reçois une erreur de syntaxe?jquery ::: remplacer le texte du lien hypertexte?

EDIT

<script type="text/javascript"> 
    var $j = jQuery.noConflict(); 
    $j(function() { 
     if($j("a").text() == "Contact") { 
      $j("a").text() = "Connect"); 
     } 
    }); 
</script> 

Répondre

9

Vous avez un support supplémentaire et l'attribution est erronée.

if($j("a").text() == 'Contact') { 
    $j("a").text('Connect'); 
} 

au lieu de

if($j("a").text() == 'Contact')) { 
    $j("a").text() == 'Connect'); 
} 

On dirait que vous venez de copier et de coller le code de l'état et changé Contact à Connect. Soyez prudent avec ça.

+0

Oof, merci beaucoup! – phpN00b

4
var $j = jQuery.noConflict(); 
$j(function() { 
    if($j("a").text() == 'Contact') { 
    $j("a").text('Connect'); 
    } 

}); 

Les corrections ci-dessus votre problème de syntaxe, mais sur le visage de celui-ci le code n'a de sens que s'il est en réalité un seul lien présent - $ j (« a ») sélectionnera tous les liens dans les DOM! Ce que vous voulez sans doute est:

$j(function() { 
    //Replace hyperlinked 'Contact' texts with 'Connect' text 
    $j("a").each(function(){ 
    if($j(this).text() == 'Contact'){ 
    $j(this).text('Connect'); 
    } 
    }); 
1

Vous ne donnez pas le texte au résultat de la méthode, vous l'utilisez comme paramètre à la méthode:

var $j = jQuery.noConflict(); 

$j(function() { 

    if ($j("a").text() == 'Contact') { 
    $j("a").text('Connect'); 
    } 

}); 
1

Ne pourriez-vous simplement utiliser le contient méthode par elle-même?

$("a:contains('Contact')").text('Connect'); 

Je suppose que la fonction noconflict est utilisée en raison de plusieurs versions jQuery étant appelées dans la page?

Questions connexes