IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

jQuery Discussion :

Ajouter une balise html à un endroit précis dans un text


Sujet :

jQuery

  1. #1
    Membre régulier
    Homme Profil pro
    Consultant process engineer industrial
    Inscrit en
    Janvier 2010
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant process engineer industrial
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2010
    Messages : 148
    Points : 93
    Points
    93
    Par défaut Ajouter une balise html à un endroit précis dans un text
    Bonjour à tous,

    je bloque sur un petit problème...

    j'ai une liste de <li> qui peut varier de 1 à 10 <li> sous cette forme
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <li class="foo" onClick="fill('depart','Garnerans, 01140');">Garnerans, 01140</li>
    <li class="foo" onClick="fill('depart','Genouilleux, 01090');">Genouilleux, 01090</li>
    <li class="foo" onClick="fill('depart','Géovreisset, 01100');">Géovreisset, 01100</li>
    <li class="foo" onClick="fill('depart','Germagnat, 01250');">Germagnat, 01250</li>

    ce que je veux faire c'est ajouter un <span> dans chacun des <li> entre le 1er caractère et le 3ème caractère
    (Attention ca peut très bien être aussi entre le 1er et le 5ème caractères)

    exemple:
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <li class="foo" onClick="fill('depart','Garnerans, 01140');"><span>Gar</span>nerans, 01140</li>
    <li class="foo" onClick="fill('depart','Genouilleux, 01090');"><span>Gen</span>ouilleux, 01090</li>
    <li class="foo" onClick="fill('depart','Géovreisset, 01100');"><span>Géo</span>vreisset, 01100</li>
    <li class="foo" onClick="fill('depart','Germagnat, 01250');"><span>Ger</span>magnat, 01250</li>

    donc vous l'avez deviné je souhaite faire ca avec JS j'imagine que je vais devoir utiliser
    .length
    et
    .split()
    mais honnêtement j'ai aucune idée de comment mis prendre...

    Je pense qu'il y a encore plus simple..
    je m'explique:
    le nombre de caractère dont je détermine c'est enfaite une valeur entrée dans un champs Input
    donc si je rentre dans le Input "Ge" donc ce qui me fait 2 caractère je vais me retrouver avec 3 ligne <li>, vu que j'ai dans m'a liste au dessus 3 résultat qui commence par Ge
    (le champ Input est enfait un formulaire de recherche le resultat étant sous la forme de <li> )

    Donc je me dit peut être qu'il est possible de rechercher directement dans les balise <li> les nom qui comment par Ge et leur mettre la balise <span> autour...

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <li class="foo" onClick="fill('depart','Genouilleux, 01090');"><span>Ge</span>nouilleux, 01090</li>
    <li class="foo" onClick="fill('depart','Géovreisset, 01100');"><span></span>ovreisset, 01100</li>
    <li class="foo" onClick="fill('depart','Germagnat, 01250');"><span>Ge</span>rmagnat, 01250</li>
    Merci d'avance

  2. #2
    Membre régulier
    Homme Profil pro
    Consultant process engineer industrial
    Inscrit en
    Janvier 2010
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant process engineer industrial
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2010
    Messages : 148
    Points : 93
    Points
    93
    Par défaut
    Bon je pense être sur le bon chemin, j'ai commencé un bout de code qui marche pas trop mal.
    j'ai mis ca sur Jsfiddle pour mieux se comprendre

    https://jsfiddle.net/0hvwdm8x/3/

    Maintenant le souci que j'ai c'est de gérer les accents.. é è ê ë û ü ù î ï ô ö à â ä

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  4. #4
    Membre régulier
    Homme Profil pro
    Consultant process engineer industrial
    Inscrit en
    Janvier 2010
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant process engineer industrial
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2010
    Messages : 148
    Points : 93
    Points
    93
    Par défaut
    Merci

    Peux tu m'expliquer la partie /(.{2})/

    Parce-que je comprend pas trop comment je pourrais mettre ma variable qui contient directement la valeur à la place du 2..

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    Ce code est basé sur les Expressions Régulières.

    Je fais un remplacement des deux premiers caractères par ces deux caractères entourés de la balise html ..

    Oui on peut variabiliser
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  6. #6
    Membre régulier
    Homme Profil pro
    Consultant process engineer industrial
    Inscrit en
    Janvier 2010
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant process engineer industrial
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2010
    Messages : 148
    Points : 93
    Points
    93
    Par défaut
    Oui j'ai bien compris ce que ça fait.
    Mais je n'arrive pas à comprendre la /(.{2})/ j'ai cherché hier soir à comprendre.. En lisant des docs sur regex()
    Jusqu'à maintenant les fois où j'ai utilisé regex c'était des bout de code récupéré. Genre pour le contrôle d'adresse e-mail etc..
    J'ai essayé de trouver la solution pour variabiliser ce bout de code, sans réussite.. :-?

  7. #7
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    . => n'importe quel caractère
    {2} => deux fois

    pour variabiliser la reg il faut passer par l'autre syntaxe de js
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  8. #8
    Membre régulier
    Homme Profil pro
    Consultant process engineer industrial
    Inscrit en
    Janvier 2010
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant process engineer industrial
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2010
    Messages : 148
    Points : 93
    Points
    93
    Par défaut
    Super pour l'explication j'ai compris :-) merci
    Je regarde ça ce soir pour new RegExp()
    Je te tiens informé ;-) encore merci

  9. #9
    Membre régulier
    Homme Profil pro
    Consultant process engineer industrial
    Inscrit en
    Janvier 2010
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant process engineer industrial
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2010
    Messages : 148
    Points : 93
    Points
    93
    Par défaut
    alors j'ai pas utilisé new RegExp() je suis allé voir la documentations sur les expressions donc je comprends mieux

    j'ai utilisé compile()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var reg=/ /;
    $(this).html( $(this).html().replace(reg.compile("(.{"+inputString.length+"})"),"<span>$1</span>") );

  10. #10
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    Au choix ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    reg= new RegExp("(.{"+inputString.length+"})");
    $(this).html( $(this).html().replace(reg,"<span>$1</span>") );
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  11. #11
    Membre régulier
    Homme Profil pro
    Consultant process engineer industrial
    Inscrit en
    Janvier 2010
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant process engineer industrial
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2010
    Messages : 148
    Points : 93
    Points
    93
    Par défaut
    Encore merci pour ton aide 😉

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ajouter une balise HTML à une chaîne
    Par niglo dans le forum Débuter
    Réponses: 1
    Dernier message: 31/05/2012, 08h52
  2. [ZF 1.11] Ajouter une balise HTML Tag dans un Zend_Form
    Par bpdelavega dans le forum Zend_Form
    Réponses: 3
    Dernier message: 23/11/2011, 09h44
  3. Atteindre un endroit précis dans un texte
    Par Yvouille dans le forum Word
    Réponses: 9
    Dernier message: 26/05/2010, 18h35
  4. [CKEditor] Comment ajouter une balise HTML personnalisée
    Par roadruner dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 11/05/2007, 15h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo