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 :

:before content CSS en jQuery


Sujet :

jQuery

  1. #1
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2006
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2006
    Messages : 985
    Par défaut :before content CSS en jQuery
    Bonsoir à tous,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    //CSS
    #main .col article h1:before  {
    	content: url(../images/item-pointer.gif)" ";
    }
     
    #footer_nav li:before, #tools ul.rssfeeds li:before  {
    	content: url(../images/item-pointer2.gif)" ";
    }
    Comment reproduire ce code CSS en JS en utilisant jQuery ?

    Merci d'avance

  2. #2
    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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    Par défaut
    prev() ?
    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 !

  3. #3
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2006
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2006
    Messages : 985
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    prev() ?
    Je souhaite insérer à l'intérieur tout au début d'une balise ou d'un élément ciblé avec jquery.

    Merci d'avance...

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    Par défaut
    before() ?
    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 éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2006
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2006
    Messages : 985
    Par défaut
    Citation Envoyé par Bovino Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    //JS
    	$("#main .col article h1").prepend('<img src="templates/images/item-pointer.gif" alt="puce" />&nbsp;');
    	$("#footer_nav li").prepend('<img src="templates/images/item-pointer2.gif" alt="puce" />&nbsp;');
    	$("#tools ul.rssfeeds li").prepend('<img src="templates/images/item-pointer2.gif" alt="puce" />&nbsp;');
    Ce qui me permet de contourner les old IE qui ne comprennent pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    //CSS
    :before  {
    	content: url(../images/item-pointer2.gif)" ";
    }
    Merci !

  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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    Par défaut
    Beef si tu passes par là .. ou Daniel
    Quelle est la différence entre prepend() et before() et dans quel cas faut il les utiliser ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <script type="text/javascript">
    	$(function(){	
    			$('#foo:first-child').prepend($('<h3/>').html("Maintenant c'est moi le premier") )
    			$('#foo:first-child').before($('<h3/>').html("Ben non c'est moi ") )
     
    		});
    </script>
     
    </head>
    <body>
    <div id="foo">
    	<h3>Premier node</h3>
    </div>
    </body>
    </html>
    ha à priori il y a une différence :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <script type="text/javascript">
    	$(function(){	
    			$('.foo h3:eq(0)').prepend($('<h3/>').html("Maintenant c'est moi le premier") )
    			$('.foo h3:eq(0)').before($('<h3/>').html("Ben non c'est moi ") )
     
    		});
    </script>
     
    <style type="text/css">
     h3 { border: solid 2px red;}
    </style>
     
    </head>
    <body>
    <div class="foo">
    	<h3>Premier node</h3>
    </div>
     
     
    </body>
    </html>
    le prepend insère dans le premier h3, le before insère avant le premier h3

    Et au passage mon erreur précédente vient du fait que
    #foo:first-child != #foo :first-child'

    Une dernière chose m'échappe
    Dans ce dernier code il m'insère deux fois le dernier h3 ..
    une fois en prepend (a l'interieur du .foo)
    une fois en before (avant le .foo)
    ???

    Ha oui !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('.foo :first-child:eq(0)')
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('.foo> :first-child')
    sinon il fait un before sur tous les premier noeuds des enfants de .foo
    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
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    .before() ajoute le contenu avant la balise en référence alors que .prepend() ajoute le contenu comme premier enfant de la balise en référence.

    Mais dans ton exemple, il y a quelques erreurs qui empêchent de bien comprendre :
    correspond à la div #foo, pas au h3
    Ensuite, dans la seconde ligne
    correspond désormais à deux éléments puisque tu as ajouté un h3 dans le premier h3, tu as donc deux éléments dans la div #foo qui correspondent à un :first-child

    L'xemple suivant sera peut-être plus éloquent :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <!doctype html>
    <html>
        <head>
    		<meta charset="utf-8" />
    		<title>...</title>
    		<script src="http://code.jquery.com/jquery-latest.js"></script><script type="text/javascript"></script>
    <script>
    	$(function(){
    		var $foo = $('#foo :first-child');
    		$foo.prepend($('<h3/>').html("Maintenant c'est moi le premier"));
    		$foo.before($('<h3/>').html("Ben non c'est moi "));
    		alert($('#foo').html());
    	});
    </script>
     
    </head>
    <body>
    <div id="foo">
    	<h3>Premier node</h3>
    </div>
    </body>
    </html>
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

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

Discussions similaires

  1. Réponses: 66
    Dernier message: 09/06/2015, 00h17
  2. Réponses: 2
    Dernier message: 18/05/2010, 20h09
  3. Réponses: 0
    Dernier message: 01/02/2009, 23h19

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