jQuery nasıl "ve" her örneğini takas için

2 Cevap php

Başlık diyor gibi

Ben, sayfa yük, #wrapper içinde bulunan metin üzerinden arama yapabilmek istiyorum.

If there is a "&" I want it to have a span tag applied to it and a class appended to that span. Ie: if it finds "hello & Welcome" it should end up like "hello <span class="amp">&</span> Welcome".

I did have some code Ive been trying but all didn't work, so pointless to include it. Any help would be great guys thanks.

EDIT: ile çalışıyoruz

<script type="text/javascript">  
    $(document).ready(function() { 
     $("#wrapper").html( $("#wrapper").html().replace(/&amp;/g, '<span class="amp">&amp;<"+"/span>') ); 
    }); 
</script>

Bu bir işlev değil, bana kundakçı bir hata ile yükler:

$ is not a function $(document).ready(function() {

Edit: ayyy jQuery benim referans eklemeyi unutmuşum ..

Bu çalışıyor.

<script type="text/javascript">  
    $(document).ready(function() { 
       $("#wrapper").html( $("#wrapper").html().replace(/&amp;/g, '<span class="amp">&amp;<"+"/span>') ); 
    }); 
</script>

2 Cevap

Eğer baktım jquery.highlight? Bu ne isterseniz onu yapar gibi görünüyor - doğru yolu (sadece textnodes içinde arama yaparak, vb)

$("#wrapper").highlight('&');

Biraz daha açıklama. Aşağıdaki senaryoyu düşünün:

 <div id='wrapper'>This &amp; should become highlighted.  
    And a picture: <img src='momanddad.jpg' alt='Mom &amp; Dad' /></div>

Battaniye sıradanifade yerine bu &amp; oluşumları hem yakalamak ile dönecektir:

 <div id='wrapper'>This <span class="amp">&amp;</span> should become highlighted.  
    And a picture: <img src='momanddad.jpg' alt='Mom <span class="amp">&amp;</span> Dad' /></div>

Bu tabii ki sizin img etiketi kırmaya devam ediyor. Jquery vurgulamak eklentisi önlemek olacaktır.

Okuma kolaylığı için ben faktörü yeniden olacaktı;

var html = $("#wrapper").text().replace(/&/g,'<span class="amp">&</span>');
$("#wrapper").html(html);

Ben varsayar rağmen bu DOM ekstra bir çağrısı var.