Ist il une meilleure façon de remplacer/h envelopper le tp: //name.tld/request_url paramètre ou h tps: //name.tld/request_url texte de paramètre dans certains certains éléments HTML avec un <a href>
jQuery: replace() ou wrap() http: //nom.tld/request_url? Paramètre avec <a href="this">...</a>?
HTML
<div id="posts">
<div class="post">
Tweet text 1 http://google.com and other text.
</div>
<div class="post">
Tweet text 2 https://www.google.com and other text.
</div>
<div class="post">
Tweet text 3
</div>
<div class="post">
...
</div>
</div>
JavaScript
jQuery('#posts .post').each(function() {
elem = jQuery(this);
elem.html(
elem.text()
.replace(/(http?:\/\/?\S+)/g, "<a href='$1'>$1</a>")
);
});
Tous jQuery.wrap() alternative serait bien aussi ...
Vous avez raison - wrap() ne fonctionnerait pas en texte brut et text() ne devrait pas être utilisé s'il y avait un autre code HTML dans le nœud. Ma question est juste, s'il y a un moyen de le faire avec moins de code/efford? Le code pourrait être manipulé plus tôt également .. par exemple. côté serveur ou dans la fonction de réponse de succès d'un appel AJAX. Thx pour votre réponse de toute façon ... – gabel
@gabel - Il n'y a pas vraiment une façon moins chère que j'ai jamais vu, sauf si vous le faites côté serveur (que je le ferais) à l'avance. –