2009-03-12 13 views
0

sur une page il y a un plusieurs liens de:Remplacer http: // dans la partie d'ancrage des liens en utilisant Jquery

<a class="linked" href="http://link1.com>http://link1.com</a> 

<a class="linked" href="http://link2.com>http://link2.com</a> 

Comment peut-on supprimer le deuxième http: // dans chaque lien ne peut donc pas être vu sur l'écran.

J'ai essayé cela en vain:

$(document).ready(function() { 

$('.linked').html().replace("http://",""); 
+0

Êtes-vous essayer de l'enlever de la href ou du texte? – Joel

+0

en essayant de le retirer du texte, merci. – Adrian33

Répondre

3

Si vous parlez du texte visible dans une balise d'ancrage

$.each($('.linked'), function() 
{ 
    var anchor = $(this); 
    anchor.text(anchor.text().replace("http:\/\/",'')) 
}); 

manquant ');' à la fin ...

+0

Pourquoi '$ .each ($ ('. Linked'), ...' à la place de '$ ('. Linked'). Each (...'? – Christoph

+0

Ils sont équivalents - préférence personnelle – rfunduk

+0

J'ai écrit que cela fonctionne avec d'autres types de collections, et pas seulement avec des collections jquery, donc j'ai tendance à les écrire ainsi – james

0

Pour la petite histoire, la version jQuery moins:

var links = document.links; 
for(var i = links.length; i--;) { 
    with(links[i]) { 
     if(/(^|\s)linked(\s|$)/.test(className)) { 
      firstChild.nodeValue = 
       firstChild.nodeValue.replace(/^http:\/\//, ''); 
     } 
    } 
} 
+0

okay, cela n'a pas fonctionné non plus une fois placé dans la tête ou le corps. – Adrian33

+1

@ adrian33: les liens doivent exister avant de pouvoir les modifier, c'est-à-dire que vous devez mettre l'élément de script comme dernier élément du corps, utiliser la fonction 'ready()' de jQuery, 'window.onload' ou' DOMContentLoaded' – Christoph