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 :

Replace impossible sur jquery


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Avril 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Analyste d'exploitation

    Informations forums :
    Inscription : Avril 2018
    Messages : 8
    Par défaut Replace impossible sur jquery
    Bonjour,

    Le but de mon script est de récupérer tous les liens img > data-src et de remplacer /img/image01.jpg en /img/mobile/01.jpg quand la taille d'écran est inférieur à 720px width.

    ce code marche j'ai bien la liste des liens dans la console
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $('img').each(function(){
          test = $(this).attr('data-src');
          console.log(test);
        });
    mais si je met replace ca ne marche pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $(this).attr('data-src').replace("img/","img/mobile/");
    Uncaught TypeError: Cannot read property 'replace' of undefined
    at HTMLImageElement.<anonymous> (monscript.js:11)
    at Function.each (jquery.min.js:2)
    at r.fn.init.each (jquery.min.js:2)
    at HTMLDocument.<anonymous> (monscript.js:10)
    at j (jquery.min.js:2)
    at k (jquery.min.js:2)

  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
    on peut voir le html de ta balise image ?

    si elle on réellement un data-src ...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $(this).data( 'src',  $(this).data('src').replace("jpg","png") );
    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
    Nouveau membre du Club
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Avril 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Analyste d'exploitation

    Informations forums :
    Inscription : Avril 2018
    Messages : 8
    Par défaut
    merci pour la reponse, Bah bien sur vu qu'il me les affichent dans la console.

    Dans mon index j'ai des img sans src juste des data-src qui servent pour lazyload. Mais osef.

    Ton code fait la même erreur, replace n'est pas reconnu. Jai vu sur d'autres forum qu'il faut rajouter val() partout.. ca ne fait plus d'erreur mais rien ne marche.

  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 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
    L'erreur n'est pas dans le replace ...
    Mais dans le fait que l'objet sur lequel tu essayes de l'appliquer n'existe pas .

    Il va falloir nous montrer un peu plus de code en situation
    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 !

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Avril 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Analyste d'exploitation

    Informations forums :
    Inscription : Avril 2018
    Messages : 8
    Par défaut
    Je ne vois pas ce que je peux montrer de +,

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script type="text/javascript" src="js/lightbox.min.js"></script>
    <script type="text/javascript" src="js/jquery.unveil.js"></script>

    monscript.js est dans le footer, donc après le body, et après tous les scripts :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $( document).ready(function() {
     
        $('img').each(function(){
          test = $(this).attr('data-src');
          console.log(test);
        });
    La console m'affiche bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    img/conseil.jpg
    etc
    etc
    et le index.php contient des :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    <img alt="" data-src="img/conseil.jpg"/>

  6. #6
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 207
    Par défaut
    Bonjour,
    quand on utilise ce sélecteur $('img') TOUTES les balises <img> sont récupérées même celles qui non pas de data-src donc cela peut planter.

    Il serait donc plus judicieux de faire un requête du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $("img[data-src]").each(function(){
      test = $(this).attr("data-src");
      console.log(test);
    });
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $('img[data-src]').each(function(){
      test = $(this).data('src');
      console.log(test);
    });

Discussions similaires

  1. Réponses: 9
    Dernier message: 29/04/2006, 13h15
  2. fonction impossible sur form créée a la volée :s
    Par avogadro dans le forum Débuter
    Réponses: 4
    Dernier message: 06/04/2006, 22h37
  3. RenameFile impossible sur un répertoire
    Par Statman dans le forum Langage
    Réponses: 2
    Dernier message: 21/03/2006, 00h16
  4. [WebForms][1.1] Clic impossible sur les liens
    Par Big_Ben68 dans le forum Général Dotnet
    Réponses: 6
    Dernier message: 09/01/2006, 16h34
  5. Réponses: 10
    Dernier message: 21/11/2005, 23h05

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