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

JavaScript Discussion :

Pur javascript: sélecteur spécifique


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Septembre 2022
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2022
    Messages : 9
    Points : 11
    Points
    11
    Par défaut Pur javascript: sélecteur spécifique
    Bonjour à tous,

    voici mon script qui fonctionne sur la page web: https://cesmeglise.org/lectures-du-jour/

    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
    function hasClass(elem, className) {
        return elem.className.split(' ').indexOf(className) > -1;
    }
    function vrai () {
    	var dots =	document.getElementsByClassName('brp-paragraph')[0];
         if (dots.style.display === "none") {
        dots.style.display = "inline"; 
      } else {
        dots.style.display = "none";
      }
    }
     
    document.addEventListener('click', function (e) {
        if (hasClass(e.target, 'brp-passage')) {
            alert('brp-passage');
    vrai()
        }
     
    }, false);

    Voici ce que je souhaite savoir:

    j'aimerais que l'alerte 'brp-passage' ne soit pas sur tous les sélecteurs 'brp-passage',
    c'est-à-dire par exemple document.getElementsByClassName('brp-paragraph')[0] ne prends que la première occurence de la classe 'brp-paragraph'

    comment ne sélectionner que la première occurrence de la classe "brp-passage"

    autrement dit: je ne sais pas où placer [0] dans le code ?



    Xzave

  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 640
    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 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    ben comme tu l'a fait dans ton exemple ...
    sinon passe par querySlector

  3. #3
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 436
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 436
    Points : 4 930
    Points
    4 930
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if(document.querySelectorAll(".brp-passage")[0]===e.target){
      //c'est le premier élément
    }
    //ou bien 
    if(document.querySelector(".brp-passage")===e.target){
      //c le premier élément
    }

  4. #4
    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 640
    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 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     document.querySelector(".brp-passage")
    Te retournera le premier element avec la class .brp-passage

    querySelectorAll quand à lui te retournera une collection dont le premier élement sera le [0] comme a montré Toufik
    ou avec item():
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.querySelectorAll(".brp-passage").item(0)

  5. #5
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Septembre 2022
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2022
    Messages : 9
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par Toufik83
    ...
    Réponse rapide merci mille fois. Elle fonctionne à merveille.

    Je laisse le post ouvert pour la suite des évenements.



    Xzave

  6. #6
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Septembre 2022
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2022
    Messages : 9
    Points : 11
    Points
    11
    Par défaut Résolution: entièreté du code Javascript + CSS
    Bonjour,

    je me permets ici de mettre mon code définitif afin de partager mes recherches:

    voici le code Pure Javascript:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function vrai (i) {
    	var ouvrirfermer =	document.getElementsByClassName('brp-paragraph')[i];
    	ouvrirfermer.style.display = "inline"; 
    	ouvrirfermer.style.position = "static";
    }
    var i,dots;
    dots =	document.getElementsByClassName('brp-paragraph');
    document.addEventListener('click', function (e) {
    	for (i=0; i<dots.length; i++){
        if(document.querySelectorAll(".brp-paragraph")[i]===e.target) {
    vrai(i);
        }
     }
    }, false);
    Code CSS : 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
    .brp-paragraph{
    position:relative;
    overflow: hidden;
    text-overflow:ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    line-clamp: 3; 
    -webkit-box-orient: vertical;
    }
     
    .brp-paragraph::after {
    display: block;
    font-weight: bold;
    content: "...Lire plus";
    position: absolute;
    bottom: 0;
    right: 0;
    background: white;
    text-decoration: underline;
    color: #a03737;
    cursor:pointer;
    }

    (le plugin s'appelle "Bible Reading Plans" dans Wordpress)

    Le résultat est sur la même URL qu'en début de Post,

    merci pour votre aide,



    Xzave

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/12/2020, 21h44
  2. Réponses: 9
    Dernier message: 17/11/2014, 19h10
  3. Récupérer les dix premiers éléments d'une liste
    Par developpeur_débutant dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 05/04/2013, 11h23
  4. Réponses: 5
    Dernier message: 16/03/2009, 09h38
  5. Réponses: 7
    Dernier message: 08/01/2005, 13h24

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