Comment définir l’image src en utilisant jQuery

J’essaie de changer l’atsortingbut image src en utilisant jQuery

jQuery("#imageID").attr('src','http://localhost:8080/images/1/myImage.png' ); 

en utilisant le code ci-dessus, je peux changer l’atsortingbut src, mais quand j’essaie ceci: –

 jQuery("#imageID").attr('src',jQuery("#imageBlock").css('background-image') ); 

Je suis incapable de changer de src.

à condition de

 alert ( jQuery("#imageBlock").css('background-image') ); 

résultats:

URL ( http: // localhost: 8080 / images / 1 / myImage.png )

Edit # 1 Juste au moment où j’allais accepter la solution. Je dois dire que presque toutes les solutions ont fonctionné dans FF. J’ai essayé:

  • tranche (4, -1);
  • split (“(“) [1]> puis remplacer (“)”, “”);

Je suppose que d’autres vont aussi travailler. Mais aucune des solutions ne fonctionne dans IE. Raison d’être: alors que FF retourne:

URL ( http: // localhost: 8080 / images / 1 / myImage.png )

IE retourne:

url (” http: // localhost: 8080 / images / 1 / myImage.png “)

^^ attention aux citations ici

Maintenant, quel pourrait être le moyen générique de définir le src attr. Dois-je tester le navigateur si c’est IE ou non?

C’est le code de travail.

 var src = ""; if ( jQuery.browser.msie ) { src = jQuery("#imageBlock").css('background-image').slice(5,-2); }else{ src = jQuery("#imageBlock").css('background-image').slice(4,-1); } jQuery("#imageID").attr('src', src ); 

Je n’aime vraiment pas ça: x. S’il existe une autre solution que celle-ci, alors faites-le moi savoir sinon j’accepterai la solution de slice immédiatement.

    IMO, slice est plus approprié que subssortingngsubssortingng ou replace . Essaye ça:

     jQuery("#imageID").attr( 'src', jQuery("#imageBlock").css('background-image').slice(4,-1) ); 

    Ici, vous découpez la chaîne entre url( et ) . Voir MDC on slice pour une description détaillée de la méthode.

    Vous devez extraire la partie url:

     var backgroundImage = $("#imageBlock") .css('backgroundImage') .replace(/"/g,"") .replace(/url\(|\)$/ig, ""); jQuery("#imageID").attr('src', backgroundImage); 

    C’est parce que la chaîne url () est entourée. Vous devrez le retirer de la chaîne, par exemple en utilisant la fonction replace …

     var bgimg = jQuery("#imageBlock").css('background-image').replace('url(', ''); bgimg.replace(')', ''); 

    Vous devez supprimer les parties url( et la fermeture ) pour que cela fonctionne.

    Donc url(http://localhost:8080/images/1/myImage.png)

    devient

    http://localhost:8080/images/1/myImage.png

    Vous pouvez le faire avec une sous-chaîne, un remplacement de regex ou toute autre méthode de votre choix.

    http://www.w3schools.com/jsref/jsref_replace.asp

    Peut-être:

    jQuery("#imageID").attr('src',jQuery("#imageBlock").css('background-image').replace('url(','').replace(')','') )