Colorare i button con una function

cavaliere123

Utente Attivo
31 Lug 2012
416
0
16
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.
 
questo è sbagliato
Codice:
tastost.lenght;
sintassi corretta
Codice:
tastost.length;

il resto non l'ho guardato
 
hai 106 button?
perchè conti il length del button?
che lunghezza pensi di ottenere?
 
sicuro che questo sia un vettore?
Codice:
var tastost = document.getElementById("buttono"+d);
non è semplicemente il riferimente all'oggetto?
 
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 :)
 
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"; }
}
} }
 
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
 
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 :(
 
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"; }
                               
                                       } }
 
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"
 
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... :(
 
dicevo prima che tastost non è un vettore
tastost[d]
semplicemente
Codice:
tastost.style.backgroundColor  = "DODGERBLUE";
 
Ed infatti cosi corretto funziona... però perdonami perchè allora nella funzione coloracelle c'è td ??
 
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
 
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... :(
 
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.... :((
 

Discussioni simili