Michael Jasper ve Jon Hendershot'ın çözümlerinden ödünç alarak şunları sunuyorum:
$('address').each(function() {
var text = $(this).text();
var q = $.trim(text).replace(/\r?\n/, ',').replace(/\s+/g, ' ');
var link = '<a href="http://maps.google.com/maps?q=' + encodeURIComponent(q) + '" target="_blank"></a>';
return $(this).wrapInner(link);
});
Bu çözüm, daha önce sunulan çözümlere göre aşağıdaki avantajları sunar:
<br>
İçindeki HTML etiketlerini (ör. Etiketler) kaldırmaz <address>
, bu nedenle biçimlendirme korunur
- URL'yi düzgün şekilde kodlar
- Oluşturulan URL'nin kodlandıktan sonra daha kısa, daha temiz ve insan tarafından okunabilir olması için fazladan boşlukları ezer
- Geçerli işaretleme üretir (Mr.Hendershot'ın çözümü
<a><address></address></a>
geçersizdir, çünkü blok düzeyi öğelere gibi <address>
satır içi öğelere izin verilmez <a>
.
Uyarı : <address>
Etiketiniz <p>
veya gibi blok düzeyinde öğeler içeriyorsa <div>
, bu JavaScript kodu geçersiz işaretlemede üretilir (çünkü <a>
etiket bu blok düzeyindeki öğeleri içerecektir). Ama sadece böyle şeyler yapıyorsanız:
<address>
The White House
<br>
1600 Pennsylvania Ave NW
<br>
Washington, D.C. 20500
</address>
O zaman iyi çalışır.