2009-08-24 13 views
0

Wie kann ich jedes Element, das zu einer bestimmten Klasse gehört, mit einem Link umschließen, der aus dem Text innerhalb des div besteht? Was ich meine ist, dass ich drehen möchte:Erstellen von Links für Elemente mit einer bestimmten Klasse mit jQuery

<foo class="my-class>sometext</foo> 

in

<a href="path/sometext" ><foo class="my-class>sometext</foo></a> 

URL-Codierung Zeichen wäre auch schön, kann aber vorerst außer Acht gelassen werden, wenn nötig.

EDIT: Nur um zu klären, hängt der Weg auf den Text innerhalb des Elements

Antwort

2

Verwenden jQuery.wrap() für den einfachen Fall:

$(".my-class").wrap("<a href='path/sometext'></a>"); 

Text nach innen zu verarbeiten:

$(".my-class").each(function() { 
    var txt = $(this).text(); 
    var link = $("<a></a>").attr("href", "path/" + txt); 
    $(this).wrap(link[0]); 
}); 
2
$(".my-class").each(function(){ 
    var thisText = $(this).text(); 
    $(this).wrap("<a></a>").attr("href","path/"+thisText); 
}); 
1

können Sie sie insi wickeln de Ankerelement wie folgt aus:

$(document).ready(function(){ 
    $(".my-class").each(function(){ 
      var hr="path/"+$(this).text(); 
      $(this).wrap("<a href='"+hr+"'></a>"); 
    }); 
}); 

, wenn Sie Links in derselben Seite selbst dann einfacher Art und Weise öffnen als dom modifizierende Elemente zu wickeln innerhalb Anker css für die Elemente zu definieren ist, so dass sie wie Links schauen dann behandeln klicken Ereignis :

$(".my-class").click(function(){ 
    window.location.href="path/"+$(this).text(); 
}); 
+0

mit $ (this) .html() vorsichtig. Besser, $ (this) .text() zu verwenden, um zu vermeiden, dass Formatierungstags eingeschlossen werden. – Sampson

+0

Ja, du hast Recht @Jonathan **. Html() ** hol alles :) – TheVillageIdiot

0

Dies sollte es tun:

$('foo.my-class').each(function() { 
    var element = $(this); 
    var text = element.html(); // or .text() or .val() 
    element.wrap('<a href="path/' + text + '"></a>'); 
}); 
+0

Ich glaube, du meintest $ (element) statt $ element. – Sampson

0
$("foo.my-class").each(function(){ 
    var foo = $(this); 
    foo.wrap("<a href='path/" + foo.Text() +"'>"); 
}); 
Verwandte Themen