2010-10-26 6 views
5

si le h2 a le mot ply je veux ajouter une pause. Les titres sont dynamiquement appelés, le site est html donc je ne peux pas utiliser php sur quoi que ce soit.jquery ajouter <br> à h2 si h2 contient ce mot

Heres h2

11/400-5 4 PLY EXPERIMENTAL PNEUS PNEUS AVIONS

veulent que ça ressemble à ce

11/400-5 4 PLY
EXPERIMENTAL PNEUS PNEUS

AVIONS

donc tout titre qui a le mot PLY ajoutera une pause juste après le mot.

probablement assez facile pour tous yous là =)

Répondre

7

Exemple:http://jsfiddle.net/DbJ2V/

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

si vous avez des tabulations, pas des espaces, de chaque côté? –

+0

je peux juste modifier le contenu je peux voir comment cela fonctionne. merci cela fonctionne très bien – Alex

2

Essayons de répondre au lieu de commenter:

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

D'abord nous cherchons tout h2 avec le texte 'PLY', remplacez-le s'il ne fait pas partie d'un mot (par exemple, -PLY correspondrait, _PLY ne serait pas, blâmer les expressions rationnelles pour ce qui fait partie d'un mot et ce qui n'est pas), avec le même contenu plus un <br />.

+0

'\ b' serait bien aussi, au lieu de' \ W ', dépend du choix. Je n'ai vraiment pas beaucoup réfléchi à ce qui serait le mieux dans ce cas (et en effet, un simple '\ s' ou juste des espaces pourraient suffire). –

0

Essayez:

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