Assegnare una class ai ' TD ' presenti in uno script html

cavaliere123

Utente Attivo
31 Lug 2012
416
0
16
Buonasera.... rieccomi....
Ho questa funzione ricavata con i vostri suggerimenti l'altro giorno...

HTML:
                     function coloracelle() { 

                       var a = document.getElementsByTagName('TD');
        var n = document.getElementsByTagName('TD').length;
            for(var i = 0; i < n; i++) {  var k = i+1 ;
	    var tastost = document.getElementById("forum"+k);
	         if(i%2==0) {
            a[i].style.backgroundColor = "TOMATO";
            tastost.style.backgroundColor  = "DODGERBLUE"; 
		    }else{
           a[i].style.backgroundColor = "DODGERBLUE";
          tastost.style.backgroundColor  = "TOMATO";
	           }
                 } }

Che funziona benissimo... ma ho la necessità di assegnargli una class per distinguerli dagli altri script presenti nel blog... a mettere una class nel <td> lo so fare ma come dirlo alla funzione ?
Cioè cerco di essere più chiaro, ammettiamo che assegno per tutti i <td> presenti nel mio script la class = "stemmi", come la riporto nella funzione di sopra.... in modo che valga solo per quei td che hanno quella class ??
In teoria dovrei usare un if.... ?
cioè usando :
HTML:
 if(document.getElementById('TD').className==stemmi; ) { tutto il codice }
Secondo voi è la procedura corretta ??
Grazie . Saluti. Domenico.
 
Ultima modifica:
Ho provato a fare cosi :

HTML:
<td class = "mis">... </td>

                     function coloracelle() {  
                         var c = document.getElementById('TD').className;
                       var a = document.getElementsByTagName('TD');
        var n = document.getElementsByTagName('TD').length;
            for(var i = 0; i < n; i++) {  var k = i+1 ;
	    var tastost = document.getElementById("forum"+k);
	         if(i%2==0 && c=="mis") {
            a[i].style.backgroundColor = "TOMATO";
            tastost.style.backgroundColor  = "DODGERBLUE"; 
		    }else{
           a[i].style.backgroundColor = "DODGERBLUE";
          tastost.style.backgroundColor  = "TOMATO"; 
	           }
                 } }

Ma non va... cosa ho errato ??
 
Visto qualche errore e messo apposto... ma neanche va...

HTML:
                     function coloracelle() {  
                         var c = document.getElementsByTagName('TD').className;
                       var a = document.getElementsByTagName('TD');
        var n = document.getElementsByTagName('TD').length;
            for(var i = 0; i < n; i++) {  var k = i+1 ;
	    var tastost = document.getElementById("forum"+k);
	         if((i%2==0) && (c==mis)) {
            a[i].style.backgroundColor = "TOMATO";
            tastost.style.backgroundColor  = "DODGERBLUE"; 
		    }else{
           a[i].style.backgroundColor = "DODGERBLUE";
          tastost.style.backgroundColor  = "TOMATO"; 
	           }
                 } }
 
Ho fatto cosi e funziona sulla pagina web

HTML:
                     function coloracelle() {  
                  
                       var a = document.getElementsByTagName('TD');
        var n = document.getElementsByTagName('TD').length; 
            for(var i = 0; i < n; i++) {  var k = i+1 ;  
	    var tastost = document.getElementById("forum"+k);
	         if((i%2==0) && (a[i].className=="mis")) { 
            a[i].style.backgroundColor = "TOMATO";
            tastost.style.backgroundColor  = "DODGERBLUE"; 
		    }
             if((i%2!=0) && (a[i].className=="mis")) { 
           a[i].style.backgroundColor = "DODGERBLUE";
          tastost.style.backgroundColor  = "TOMATO"; }
	           } 
                  }

Ma quando inserisco lo script nel blog piattaforma blogger dai numeri.... a volte compare il colore del button, altre volte quelle delle celle.... secondo voi come mai ??..

E poi tipo la parola Orleàns mi compare la è come segno identificato.... e non posso usare li il replece con e&acute.... la textarea non permette questo....
Mi aiutate per cortesia....
 
Ho fatto cosi e funziona sulla pagina web

HTML:
                     function coloracelle() {  
                  
                       var a = document.getElementsByTagName('TD');
        var n = document.getElementsByTagName('TD').length; 
            for(var i = 0; i < n; i++) {  var k = i+1 ;  
	    var tastost = document.getElementById("forum"+k);
	         if((i%2==0) && (a[i].className=="mis")) { 
            a[i].style.backgroundColor = "TOMATO";
            tastost.style.backgroundColor  = "DODGERBLUE"; 
		    }
             if((i%2!=0) && (a[i].className=="mis")) { 
           a[i].style.backgroundColor = "DODGERBLUE";
          tastost.style.backgroundColor  = "TOMATO"; }
	           } 
                  }

Ma quando inserisco lo script nel blog piattaforma blogger dai numeri.... a volte compare il colore del button, altre volte quelle delle celle.... secondo voi come mai ??..

E poi tipo la parola Orleàns mi compare la è come segno identificato.... e non posso usare li il replece con e&acute.... la textarea non permette questo....
Mi aiutate per cortesia....

Ciao,

questa fantomatica classe che vuoi assegnare ai td cosa deve fare, è un'aggiunta al codice scritto, o altro.

Per la textarea non ho capito.

Valeria.
 
Buon giorno Valeria, subito vado a risponderti..

Nel blog chiaramente ci sono vari script che vengono eseguiti, e se inserissi quest'ultimo che ho fatto senza assegnare una class ai td, anche gli altri td prensenti nel blog si colorerebbero.... quindi assegnato class e per lo meno questo pericolo scongiurato.... solo che adesso lo script funziona tutto bene ma solo i colori delle celle e del button li assegna a fatti suoi, ma questo solo nel blog, nelle mie prove su una pagina web funziona benissimo.....

Forse è incompatibilità di qualcosa con la struttura del blog....

Per la textarea, stesso problema... su una pagina web normale se ad esempio scrivo Orlèans nella textarea non crea problema... inserisco nel blog ed ecco che a posto della e accentata mi esce il simbolo di non lettura del carattere....

Grazie per la tua accortenza :)
 
Buon giorno Valeria, subito vado a risponderti..

Nel blog chiaramente ci sono vari script che vengono eseguiti, e se inserissi quest'ultimo che ho fatto senza assegnare una class ai td, anche gli altri td prensenti nel blog si colorerebbero.... quindi assegnato class e per lo meno questo pericolo scongiurato.... solo che adesso lo script funziona tutto bene ma solo i colori delle celle e del button li assegna a fatti suoi, ma questo solo nel blog, nelle mie prove su una pagina web funziona benissimo.....

Forse è incompatibilità di qualcosa con la struttura del blog....

Per la textarea, stesso problema... su una pagina web normale se ad esempio scrivo Orlèans nella textarea non crea problema... inserisco nel blog ed ecco che a posto della e accentata mi esce il simbolo di non lettura del carattere....

Grazie per la tua accortenza :)

Ciao, vuoi colorare alcuni td e button tramite un css?

Valeria
 
Valeria io già ho colorato le celle e i button con quella funzione che ho postato.... e che mi avete suggerita voi, e in una normale pagina web funziona benissimo....
Solo quando inserisco tale script nel blog mi crea problemi, perchè le celle e i button si colorano a casaccio e quindi ci sarà qualcosa che inteferisce con il blog....
Devo usare per forza una class per i td di questo script altrimenti tutti i td presenti nel blog si colorerebbero...

adesso chiedevo se sapevate e magari darmi un suggerimento di come mai nel blog mi crea questo problema...

Poi anche la textarea.... nellla pagina web normale i caratteri accentati nella textarea me li legge senza problemi, nel blog quando incontra un carattere accentato mi da al suo posto il carattere che non l'ha riconosciuto.... e non posso usare la funzione replace in una textarea.... :(
 
Ciao,

per il problema con le lettere accentate ne abbiamo discusso qualche post fa.

Cosa metti nella classe che intedi chiamare miss

Valeria.
 
Per le lettere accentate si hai ragione ed intatti mettendo :

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

funziona a meraviglia.... ma non nel blog :(

e ti posto il primo td che ho nella lista... chiaramente c'è ne sono circa 120 e con gli indici progressivi :

HTML:
<td id="1" class="mis" align="center"><INPUT id ="forum1" class="button1" TYPE="button" VALUE="Chiuda Immagine" onclick="piccola('img1');"/><div id="fot1"><p  id="immaga1"></p></br><textarea class="area" id ="tex1"  name="fine1" cols="6" rows="1"  style="display:block"></textarea><textarea class="area1" id = "text1" name="fine11" cols="16" rows="1" style="display:none"></textarea><p  id="immagaint1"></p><textarea class="area1" id = "textins1" name="fine111" cols="16" rows="1" style="display:none"></textarea></div></td>

é qualcosa di abominevole ma è una seria di textarea che compaiono o scompaiono a seconda dei clik..

Mi spiace ma purtroppo i miei script sono cosi.... :(
 
Vai a sapere cosa non fa funzionare una determinata applicazione, controlla tutti gli script, nomi variabili assegnazioni, id ecc....


Elimina parte di codice di volta il volta, per vedere quale da problemi.

Impossibile rispondere, se offline funziona e sul blog no.


Valeria.
 
OK.... infatti me sa unica soluzione.....

Grazie della pazienza.... :)

Alla prossima e non è una minaccia giuro. :D

Domenico.
 
Buonasera, per cominciare ho compreso l'errore dove sta....

Giacchè la funzione :

HTML:
                     function coloracelle() {  
                  
                       var a = document.getElementsByTagName('TD');
        var n = document.getElementsByTagName('TD').length; 
            for(var i = 0; i < n; i++) {  var k = i+1 ;  
	    var tastost = document.getElementById("forum"+k);
	         if((i%2==0) && (a[i].className=="mis")) { 
            a[i].style.backgroundColor = "TOMATO";
            tastost.style.backgroundColor  = "DODGERBLUE"; 
		    }
             if((i%2!=0) && (a[i].className=="mis")) { 
           a[i].style.backgroundColor = "DODGERBLUE";
          tastost.style.backgroundColor  = "TOMATO"; }
	           } 
                  }

conta quanti TD ci sono nella pagina... chiaramente nel blog conterà anche i TD presenti in altre tabelle che non centrano nulla con lo script dello stemmario.... quindi falsa la numerazione totale e i colori non sono corrispettivi nella tabella interessata...

Quindi ho pensato che bisognerebbe trovare solo i TD con la class = "mis" e li solo associare il controllo successivo e il colore.... Ho buttato giù questa funzione...

HTML:
                     function coloracelle() {  
                  
                       var a = document.getElementsByTagName('TD');
        var n = document.getElementsByTagName('TD').length; 
            for(var i = 0; i < n; i++) { 
          if(a[i].className=="mis") { 

            var t = i;
// cioè intenderei cosi di memorizzare il valore dell'indice " i " in quel momento.. e memorizzarlo in un variabile t. 
                              var k = t+1 ;  
	    var tastost = document.getElementById("forum"+k);


	         if(t%2==0) { 
           a[t].style.backgroundColor = "TOMATO";
            tastost.style.backgroundColor  = "DODGERBLUE"; 
		    }
             if(t%2==1) { 
           a[t].style.backgroundColor = "DODGERBLUE";
          tastost.style.backgroundColor  = "TOMATO"; }
	           } } }

ma non va.... dove erro ??
 
E' tutto errato... forse solo il Buonasera è corretto....
discorso inutile ed errato.... ....
perdonatemi..... davvero stavolta mi sono superato :(

torno alla function :

HTML:
                     function coloracelle() {  
                  
                       var a = document.getElementsByTagName('TD');
        var n = document.getElementsByTagName('TD').length; 
            for(var i = 0; i < n; i++) {  var k = i+1 ;  
	    var tastost = document.getElementById("forum"+k);
	         if((i%2==0) && (a[i].className=="mis")) { 
            a[i].style.backgroundColor = "TOMATO";
            tastost.style.backgroundColor  = "DODGERBLUE"; 
		    }
             if((i%2!=0) && (a[i].className=="mis")) { 
           a[i].style.backgroundColor = "DODGERBLUE";
          tastost.style.backgroundColor  = "TOMATO"; }
	           } 
                  }

e cerco di capire... il problema dov'è...
 
Ultima modifica:
Rieccomi... come vedete io non demordo quando ho un problema a costo di fare notte in bianco...

il problema erano proprio i td precedenti.... se ammettiamo erano 18 i td delle tabelle precedenti a quelle presenti nello scrpt dello stemmario sballava il controllo dell'indice nello script di quest'ultimo.. ho quindi riassociato i " td " alle tabelle interne identificate con un id... e poi fatto cosi :

HTML:
                     function coloracelle() {  

               for(var j = 1; j < 8; j++) {  var tabella = document.getElementById("tabellas"+j);
                  
                       var a = tabella.getElementsByTagName('TD');
        var n = tabella.getElementsByTagName('TD').length; 

                   var tastost = tabella.getElementsByTagName('input')       


            for(var i = 0; i < n; i++) {  
	    
	         if((i%2==0) && (a[i].className=="mis") && (tastost[i].className=="button1") ) { 
            a[i].style.backgroundColor = "TOMATO"; 
             tastost[i].style.backgroundColor  = "DODGERBLUE"; 
		    }
             if((i%2!=0) && (a[i].className=="mis") && (tastost[i].className=="button1")) {
           a[i].style.backgroundColor = "DODGERBLUE"; 
           tastost[i].style.backgroundColor  = "TOMATO";
           }
	           } }
                                                
 }

e funziona :)
Per cortesia dateci una occhiata se vi va... e grazie :)
Domenico.
p.s. : buona notte :D
 

Discussioni simili