2010-10-26 6 views
5

se h2 ha la parola piega voglio aggiungere un'interruzione.jquery aggiungi <br> a h2 se h2 contiene questa parola

i titoli sono chiamati dinamicamente, il sito è html quindi non posso usare php su nulla.

Heres H2

11/400-5 4 strati SPERIMENTALE PNEUMATICI AEREI PNEUMATICO

vogliono farlo sembrare come questo

11/400-5 4 strati
SPERIMENTALE DI PNEUMATICI AEREI PNEUMATICO

quindi qualsiasi titolo che contiene la parola PLY aggiungerà un'interruzione subito dopo la parola.

probabilmente abbastanza facile per tutti yous là fuori =)

risposta

7

Esempio:http://jsfiddle.net/DbJ2V/

$('h2:contains(" PLY ")').html(function(i,htm) { 
    return htm.replace(" PLY ", " PLY<br/>"); 
}); 
+0

quello che se hai le schede, non spazi, su entrambi i lati? –

+0

Posso solo modificare i contenuti posso vedere come funziona. grazie a questo funziona benissimo – Alex

2

Proviamo a rispondere invece di commentare:

$("h2:contains('PLY')").each(function() { 
    $(this).html($(this).html().replace(/(\WPLY\W)/g, "$1<br />")); 
}); 

Per prima cosa cercare qualsiasi h2 con il testo "PLY", quindi sostituirlo, se effettivamente non fa parte di una parola (ad esempio, -PLY corrisponderebbe, _PLY non lo farebbe, biasimi regex per ciò che è parte di una parola e cosa non lo è), con lo stesso contenuto più uno <br />.

+0

'\ b' sarebbe bello, invece di' \ W', dipende dalla scelta. Non ho davvero pensato molto a quale sarebbe stato meglio in questo caso (e in effetti, un semplice '\ s' o solo spazi potrebbero essere sufficienti). –

0

Prova:

$(document).ready(function() { 
    $("#content h2:contains(' PLY ')").each(function(k,v) { 
     t = $(v).text(); 
     $(v).html(t.replace(" PLY ", " PLY<br/>")); 
    }); 
});