Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di marco_c
    Registrato dal
    Jun 2004
    Messaggi
    1,047

    Concatenare una variabile per comporre un riferimento a un'elemento immagine

    Ho tante immagini del tipo

    [img]percorso[/img]

    Il nome delle immagini (img1, img2, e così via) è appunto variabile e non conosciuto a priori

    Ho una funzione javascript che manipola l'immagine. A questa funzione devo quindi passare un parametro chiamiamolo X che è di volta in volta il nome dell'immagine.

    Dentro questa funzione devo quindi accedere a document.images.img1.src, dove però al posto di img1 ho X, dovrei quindi concatenare in qualche modo il riferimento, qualcosa tipo

    document.images. + X + .src

    Non ho idea di come sia la sintassi...

    Grazie a chi mi aiuta
    Gli uomini si dividono in due categorie: i geni e quelli che dicono di esserlo. Io sono un genio.

  2. #2
    Utente di HTML.it L'avatar di lake86
    Registrato dal
    Dec 2006
    Messaggi
    705
    eval('document.images.' + X + '.src');

    c'è un modo senza eval ma al momento non me lo ricordo

  3. #3
    Utente di HTML.it L'avatar di marco_c
    Registrato dal
    Jun 2004
    Messaggi
    1,047
    strano... non funziona.. è come se quella riga non venisse eseguita
    Gli uomini si dividono in due categorie: i geni e quelli che dicono di esserlo. Io sono un genio.

  4. #4
    Dipende da due condizioni:

    1) quale è l'evento che avvia la funzione
    2) se tutte le immagini della pagina debbono essere considerate o solo alcune: in quest'ultimo caso occorre sapere che condizione debbono soddisfare quella da tenere in considerazione.

    Poniamo uno scenario ipotetico come questo:

    1) evento è onclick di un link
    2) le immagini sono solo quelle la cui proprietà name comincia con la string "img"
    =====
    [img]gif1.gif[/img]
    [img]gif2.gif[/img]
    [img]gif3.gif[/img]
    <script>
    function bho(){
    var output=[];
    for(var i=0; i<document.images.length; i++){
    if(document.images[i].name.indexOf('img')===0){output[++output.length-1]=document.images[i].src;}
    }
    alert(output);
    return output;
    }
    </script>


    test
    =====

    Altrimenti, immaginiamo uno scenario come questo:

    1) L'evento è un click su una immagine
    =====
    [img]gif1.gif[/img]
    <script>
    function bho(x){
    alert(x.src);
    }
    </script>
    =====

    Infine, potrei pensare che un qualche evento collegato ad un layer x deve individuare che per tale layer la immagine collegata sarebbe y. Ci sono diversi modi per riuscirci, anche senza utilizzare il DOM.
    Il layer per esempio potrebbe avere una porzione del suo id che richiama il name della immagine correlata:
    =====
    [img]gif1.gif[/img]
    [img]gif2.gif[/img]
    <div id="layer_img2" onclick="bho(this.id)" style="background-color:#cccccc;">test clicca</div>
    <script>
    function bho(x){
    x=x.substring(x.indexOf('_')+1);
    alert(document.images[x].src)
    }
    </script>
    =====

  5. #5
    Utente di HTML.it L'avatar di marco_c
    Registrato dal
    Jun 2004
    Messaggi
    1,047
    Ho risolto molto semplicemente in questo modo

    document[nome_della_variabile].src

    Così funziona.
    Grazie mille dell'aiuto
    Gli uomini si dividono in due categorie: i geni e quelli che dicono di esserlo. Io sono un genio.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.