Colorare i button con una function

Discussione in 'Javascript' iniziata da cavaliere123, 17 Ottobre 2012.

  1. cavaliere123

    cavaliere123 Utente Attivo

    Registrato:
    31 Luglio 2012
    Messaggi:
    415
    Mi Piace Ricevuti:
    0
    Punteggio:
    0
    Salve a tutti, gentilmente ho questa piccola cosa da chiedervi...

    ho questi button :

    HTML:
    <INPUT id ="buttono1" class="button1" TYPE="button" VALUE="Chiuda Immagine" onclick="piccola('img1');"/>
    <INPUT id ="buttono2" class="button1" TYPE="button" VALUE="Chiuda Immagine" onclick="piccola('img2');"/>
    -------------
    
    e vorrei cambiargli colore in base alla cella in cui si trovano.... prendendo una funzione da voi già diciamo corretta ( meglio dire fatta ex novo... )... ho fatto cosi :

    HTML:
                 function coloratasto() {
    
                 for(var d = 0; d < 106; d++) {
                   var tastost = document.getElementById("buttono"+d); 
                     var count_but = tastost.lenght;
                    for(var i = 0; i < count_but; i++) {
                            if(i%2==0) {    
                                   tastost[i].style.backgroundColor  = "DODGERBLUE"; 
                             }else{
                                   tastost[i].style.backgroundColor  = "TOMATO"; }
                                   }
                                           } }
    
    
    ma come al solito non mi funziona.... cosa ho sbagliato gentilemente ??
    Domenico.
     
  2. criric

    criric Super Moderatore Membro dello Staff SUPER MOD MOD

    Registrato:
    21 Agosto 2010
    Messaggi:
    5.607
    Mi Piace Ricevuti:
    54
    Punteggio:
    48
    Sesso:
    Maschio
    Località:
    TN
    questo è sbagliato
    Codice:
    tastost.lenght;
    sintassi corretta
    Codice:
    tastost.length;
    il resto non l'ho guardato
     
  3. cavaliere123

    cavaliere123 Utente Attivo

    Registrato:
    31 Luglio 2012
    Messaggi:
    415
    Mi Piace Ricevuti:
    0
    Punteggio:
    0
    Salve , ho corretto la sintassi... ma non va lo stesso..... :(
     
  4. criric

    criric Super Moderatore Membro dello Staff SUPER MOD MOD

    Registrato:
    21 Agosto 2010
    Messaggi:
    5.607
    Mi Piace Ricevuti:
    54
    Punteggio:
    48
    Sesso:
    Maschio
    Località:
    TN
    hai 106 button?
    perchè conti il length del button?
    che lunghezza pensi di ottenere?
     
  5. cavaliere123

    cavaliere123 Utente Attivo

    Registrato:
    31 Luglio 2012
    Messaggi:
    415
    Mi Piace Ricevuti:
    0
    Punteggio:
    0
    Si ho 106 button, uno in ogni cella...
    La lunghezza dei vettore creato con il primo for....
     
  6. criric

    criric Super Moderatore Membro dello Staff SUPER MOD MOD

    Registrato:
    21 Agosto 2010
    Messaggi:
    5.607
    Mi Piace Ricevuti:
    54
    Punteggio:
    48
    Sesso:
    Maschio
    Località:
    TN
    sicuro che questo sia un vettore?
    Codice:
    var tastost = document.getElementById("buttono"+d); 
    non è semplicemente il riferimente all'oggetto?
     
  7. cavaliere123

    cavaliere123 Utente Attivo

    Registrato:
    31 Luglio 2012
    Messaggi:
    415
    Mi Piace Ricevuti:
    0
    Punteggio:
    0
    Scusami non cambia tanti valori quanti ne sono quelli che da il for ?
    Cioè se d = 1

    var tastost = document.getElementById("buttono"+1);

    se d = 2

    var tastost = document.getElementById("buttono"+2);

    Attenzione non è venirti contro... spiego solo la mia logica... per capire.. sia ben chiaro eh... per te e per tutti.... sto semplicemente chiedendo aiuto.... e quindi a domanda rispondo :)
     
  8. cavaliere123

    cavaliere123 Utente Attivo

    Registrato:
    31 Luglio 2012
    Messaggi:
    415
    Mi Piace Ricevuti:
    0
    Punteggio:
    0
    Mi sono riferito a questa funzione presa sotto i vostri suggerimenti che funziona benissimo e diciamo che l'ho voluta modificare ... sicuramente ho errato... ma non so dove...

    HTML:
                function coloracelle() { 
                   
                for(var g = 0; g < 7; g++) {
                var tabella = document.getElementById("tabellas"+g);
                                                     
     var td = tabella.getElementsByTagName('td');
        var count_td = td.length;
    for(var i = 0; i < count_td; i++) {
    if(i%2==0) {
    td[i].style.backgroundColor = "TOMATO";
    }else{
    td[i].style.backgroundColor = "DODGERBLUE"; }
    }
    } }
    
    
     
  9. criric

    criric Super Moderatore Membro dello Staff SUPER MOD MOD

    Registrato:
    21 Agosto 2010
    Messaggi:
    5.607
    Mi Piace Ricevuti:
    54
    Punteggio:
    48
    Sesso:
    Maschio
    Località:
    TN
    Sto cercando appunto di seguire il tuo ragionamento
    o preferisci che ti posto il codice funzionante?

    Secondo me il ciclo interno non ti serve a nulla e ti manda in errore lo script
     
  10. cavaliere123

    cavaliere123 Utente Attivo

    Registrato:
    31 Luglio 2012
    Messaggi:
    415
    Mi Piace Ricevuti:
    0
    Punteggio:
    0
    Petta , adesso provo a correggere allora.... un attimo solo :)
     
  11. cavaliere123

    cavaliere123 Utente Attivo

    Registrato:
    31 Luglio 2012
    Messaggi:
    415
    Mi Piace Ricevuti:
    0
    Punteggio:
    0
    Fatto cosi :

    HTML:
                 function coloratasto() {
    
                 for(var d = 0; d < 106; d++) {
                   var tastost = document.getElementById("button"+d); 
    
    
                            if(d%2==0) {    
                                   tastost[d].style.backgroundColor  = "DODGERBLUE"; 
                             }else{
                                   tastost[d].style.backgroundColor  = "TOMATO"; }
                                   
                                           } }
    
    
    Ma neanche va :(
     
  12. criric

    criric Super Moderatore Membro dello Staff SUPER MOD MOD

    Registrato:
    21 Agosto 2010
    Messaggi:
    5.607
    Mi Piace Ricevuti:
    54
    Punteggio:
    48
    Sesso:
    Maschio
    Località:
    TN
    non si chiamava bottono ?

    EDIT

    anzi buttono
     
  13. cavaliere123

    cavaliere123 Utente Attivo

    Registrato:
    31 Luglio 2012
    Messaggi:
    415
    Mi Piace Ricevuti:
    0
    Punteggio:
    0
    Non so se ridere o piangere.... corretto ma cmq neanche va...

    HTML:
                 function coloratasto() {
    
                 for(var d = 0; d < 106; d++) {
                   var tastost = document.getElementById("buttono"+d); 
    
    
                            if(d%2==0) {    
                                   tastost[d].style.backgroundColor  = "DODGERBLUE"; 
                             }else{
                                   tastost[d].style.backgroundColor  = "TOMATO"; }
                                   
                                           } }
    
    
     
  14. criric

    criric Super Moderatore Membro dello Staff SUPER MOD MOD

    Registrato:
    21 Agosto 2010
    Messaggi:
    5.607
    Mi Piace Ricevuti:
    54
    Punteggio:
    48
    Sesso:
    Maschio
    Località:
    TN
    Il primo "buttono" è 1 non 0

    di conseguenza è piu logico far partire il contatore da 1 anziche da 0

    o in alternativa aggiungere un "buttono0"
     
  15. cavaliere123

    cavaliere123 Utente Attivo

    Registrato:
    31 Luglio 2012
    Messaggi:
    415
    Mi Piace Ricevuti:
    0
    Punteggio:
    0
    HTML:
                 function coloratasto() {
    
                 for(var d = 1; d < 106; d++) {
                   var tastost = document.getElementById("buttono"+d); 
    
    
                            if(d%2==0) {    
                                   tastost[d].style.backgroundColor  = "DODGERBLUE"; 
                             }else{
                                   tastost[d].style.backgroundColor  = "TOMATO"; }
                                   
    
    mi spiace ... davvero.... ma non va.... chiaramente ho riposto la funzione sotto a tutto come le altre... :(
     
  16. criric

    criric Super Moderatore Membro dello Staff SUPER MOD MOD

    Registrato:
    21 Agosto 2010
    Messaggi:
    5.607
    Mi Piace Ricevuti:
    54
    Punteggio:
    48
    Sesso:
    Maschio
    Località:
    TN
    dicevo prima che tastost non è un vettore
    tastost[d]
    semplicemente
    Codice:
    tastost.style.backgroundColor  = "DODGERBLUE"; 
     
  17. cavaliere123

    cavaliere123 Utente Attivo

    Registrato:
    31 Luglio 2012
    Messaggi:
    415
    Mi Piace Ricevuti:
    0
    Punteggio:
    0
    Ed infatti cosi corretto funziona... però perdonami perchè allora nella funzione coloracelle c'è td ??
     
  18. criric

    criric Super Moderatore Membro dello Staff SUPER MOD MOD

    Registrato:
    21 Agosto 2010
    Messaggi:
    5.607
    Mi Piace Ricevuti:
    54
    Punteggio:
    48
    Sesso:
    Maschio
    Località:
    TN
    perche in quel caso td è un vettore
    HTML:
    var td = tabella.getElementsByTagName('td');
    ovvero contiene tute le td della tabella poiche il metodo usato è getElementsByTagName() e non getElementById) come in questo caso
     
  19. cavaliere123

    cavaliere123 Utente Attivo

    Registrato:
    31 Luglio 2012
    Messaggi:
    415
    Mi Piace Ricevuti:
    0
    Punteggio:
    0
    Capito e grazie della pazienza....
    sai una cosa... ho 106 td con relativi 106 button
    sino ad un 90 td il colora tasti funziona. dopo no... mah....
    devo ricontrollare... :(
     
  20. cavaliere123

    cavaliere123 Utente Attivo

    Registrato:
    31 Luglio 2012
    Messaggi:
    415
    Mi Piace Ricevuti:
    0
    Punteggio:
    0
    Aspita... no peggio ancora.... i td chiaramente sono divisi 15 alla volta per ogni tabella visualizzata.. bene per le tabelle dispari il codice funziona, per quelle pari il colore si presenta all'incontrario... ma la funzione non vede l'id del button ?..
    Perchè si associa alla tabella 1, 2 , 3, 4... ????
    Anzi perchè capitano tutte a me.... :((
     
Sto caricando...

Condividi questa Pagina