Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra integra un sensore da 1 pollice 8K, ottiche Leica e triplo chip IA. Tra schermo OLED rimovibile, workflow I-Log a 10 bit e stabilizzazione a tre assi, analizziamo le doti tecniche di una gimbal camera pensata per i professionisti
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 01-06-2010, 13:04   #1
pmhwp
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 453
[Html e Javascript]Cambiare colore sfondo di una tabella

Ciao,
ho una tabella che si trova all'interno di un div.
Questa tabella viene aggiungta dinamicamente all'interno della pagina con javascript in questo modo:

document.GetElementsByName("nameDIV").InnerHTML="<table id=\"idtable\" name=\"nametable\"> </table>";

Come faccio a cambiare il colore di sfondo della tabella dopo averla aggiunta dinamicamente?

Codice:
<div id="idDIV" name="nameDIV">
<table id="idtable" name="nametable"> 
</table>
</div>
Grazie.
pmhwp è offline   Rispondi citando il messaggio o parte di esso
Old 01-06-2010, 18:55   #2
MaxArt
Senior Member
 
L'Avatar di MaxArt
 
Iscritto dal: Apr 2004
Città: Livorno
Messaggi: 6659
Quote:
Originariamente inviato da pmhwp Guarda i messaggi
document.GetElementsByName("nameDIV").InnerHTML="<table id=\"idtable\" name=\"nametable\"> </table>";
Il JavaScript è case sensitive, spero che tu abbia scritto getElementsByName e innerHTML. Inoltre, getElementsByName ti restituisce una lista, per cui ci vuole [0] dopo la parentesi ).

Relativamente alla tua domanda, una volta inserita la tabella essa diviene un elemento del DOM e lo puoi trattare come tutti gli altri. In particolare, risulterà essere il primo nodo figlio del div, e dunque:
document.getElementsByName("nameDIV")[0].firstChild.style.backgroundColor = "red";
Io ci ho messo il rosso, tu mettici quel che ti pare.

Ah, dato che in generale più elementi HTML possono avere lo stesso attributo "name" mentre si suppone che ognuno abbia un unico "id", ti consiglio di usare document.getElementById, che è più veloce e restituisce un elemento unico.
__________________
HWU Rugby Group :'( - FAQ Processori - Aurea Sectio - CogitoWeb: idee varie sviluppando nel web

Ultima modifica di MaxArt : 01-06-2010 alle 18:58.
MaxArt è offline   Rispondi citando il messaggio o parte di esso
Old 01-06-2010, 23:27   #3
pmhwp
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 453
Non mi funziona.
Dice che firstchild.style non è definito.
Forse il problema è che la tabella è inserita dinamicamente.

Comunque ho risolto il tutto modificando alcune cose.

Grazie.
pmhwp è offline   Rispondi citando il messaggio o parte di esso
Old 02-06-2010, 00:29   #4
MaxArt
Senior Member
 
L'Avatar di MaxArt
 
Iscritto dal: Apr 2004
Città: Livorno
Messaggi: 6659
Quote:
Originariamente inviato da pmhwp Guarda i messaggi
Non mi funziona.
Dice che firstchild.style non è definito.
Forse il problema è che la tabella è inserita dinamicamente.
No, non è quello il problema: è che si scrive firstChild, non firstchild.
__________________
HWU Rugby Group :'( - FAQ Processori - Aurea Sectio - CogitoWeb: idee varie sviluppando nel web
MaxArt è offline   Rispondi citando il messaggio o parte di esso
Old 03-06-2010, 11:18   #5
kk3z
Senior Member
 
L'Avatar di kk3z
 
Iscritto dal: Nov 2003
Messaggi: 980
In firefox anche i nodi di testo vengono inclusi nella lista di nodi.
Perchè usi getElementsByName quando puoi usare l'id?

document.getElementById("idDIV").getElementsByTagName("table")[0].style.backgroundColor = "red";

Se usassi jquery sarebbe tutto più intuitivo:
$("#idDIV").children("table:first").css("backgroundColor", "red);
kk3z è offline   Rispondi citando il messaggio o parte di esso
Old 03-06-2010, 12:44   #6
pmhwp
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 453
Ciao,
Ti ringrazio.
Darò un occhiata a jQuery.
pmhwp è offline   Rispondi citando il messaggio o parte di esso
Old 03-06-2010, 12:46   #7
leonardo73
Senior Member
 
L'Avatar di leonardo73
 
Iscritto dal: Feb 2010
Messaggi: 523
in ogni caso per un migliore disaccoppiamento io personalmente andrei a cambiare (e via jquery come consigliato anche da kk3z) il foglio di stile associato e non direttamente la proprietà background-color

ciao
__________________
AMD Ryzen 5 3600X, ASUS ROG Crosshair VII hero, MSI GeForce RTX 2060 Super Gaming X 8GB, 16GB Corsair Vengeance LPX, Noctua NH-U12S Chromax Black, Samsung 970 EVO Plus 500GB, Corsair RMx Series RM750x, Corsair obsidian 750D
leonardo73 è offline   Rispondi citando il messaggio o parte di esso
Old 03-06-2010, 13:30   #8
pmhwp
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 453
Ma così facendo la modifica la vedo istantaneamente?
Il cambio di colore intendo.
pmhwp è offline   Rispondi citando il messaggio o parte di esso
Old 03-06-2010, 14:05   #9
leonardo73
Senior Member
 
L'Avatar di leonardo73
 
Iscritto dal: Feb 2010
Messaggi: 523
Quote:
Originariamente inviato da pmhwp Guarda i messaggi
Ma così facendo la modifica la vedo istantaneamente?
Il cambio di colore intendo.
se hai caricato il css dove è contenuta la definizione dello stile in questione, si.
__________________
AMD Ryzen 5 3600X, ASUS ROG Crosshair VII hero, MSI GeForce RTX 2060 Super Gaming X 8GB, 16GB Corsair Vengeance LPX, Noctua NH-U12S Chromax Black, Samsung 970 EVO Plus 500GB, Corsair RMx Series RM750x, Corsair obsidian 750D
leonardo73 è offline   Rispondi citando il messaggio o parte di esso
Old 03-06-2010, 14:21   #10
pmhwp
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 453
Ok,grazie.
pmhwp è offline   Rispondi citando il messaggio o parte di esso
Old 03-06-2010, 15:29   #11
MaxArt
Senior Member
 
L'Avatar di MaxArt
 
Iscritto dal: Apr 2004
Città: Livorno
Messaggi: 6659
Quote:
Originariamente inviato da kk3z Guarda i messaggi
In firefox anche i nodi di testo vengono inclusi nella lista di nodi.
Ma non hanno un nome...

Quote:
Se usassi jquery sarebbe tutto più intuitivo:
$("#idDIV").children("table:first").css("backgroundColor", "red);
È un'opinione personale, ma visto che mi pare che si trovi alle prime armi con JavaScript, io gli consiglierei di ambientarsi meglio con la programmazione "classica" di JavaScript prima di affidarsi ad una libreria vasta ed estensiva come jQuery.
Perché con jQuery non impara javascript: praticamente impara jQuery...

Poi, voglio dire, scrivi una riga in un modo, scrivi una riga con jQuery, almeno in questo caso...
__________________
HWU Rugby Group :'( - FAQ Processori - Aurea Sectio - CogitoWeb: idee varie sviluppando nel web
MaxArt è offline   Rispondi citando il messaggio o parte di esso
Old 03-06-2010, 15:52   #12
kk3z
Senior Member
 
L'Avatar di kk3z
 
Iscritto dal: Nov 2003
Messaggi: 980
Quote:
Originariamente inviato da MaxArt Guarda i messaggi
Ma non hanno un nome...
Io non mi riferisco alla chiamata a getElementsByName() ma all'uso di firstChild, che in firefox in questo caso punta a un textnode (in explorer invece punta alla table).

jquery aiuta nella manipolazione del dom e in ajax, non è che sostituisce tutto javascript.

Ultima modifica di kk3z : 03-06-2010 alle 15:55.
kk3z è offline   Rispondi citando il messaggio o parte di esso
Old 03-06-2010, 15:58   #13
leonardo73
Senior Member
 
L'Avatar di leonardo73
 
Iscritto dal: Feb 2010
Messaggi: 523
Quote:
Originariamente inviato da MaxArt Guarda i messaggi
È un'opinione personale, ma visto che mi pare che si trovi alle prime armi con JavaScript, io gli consiglierei di ambientarsi meglio con la programmazione "classica" di JavaScript prima di affidarsi ad una libreria vasta ed estensiva come jQuery.
basta che questo non significhi fare le cose peggio
personalmente credo che la cosa con cui bisogna prendere confidenza da subito sono le API.
__________________
AMD Ryzen 5 3600X, ASUS ROG Crosshair VII hero, MSI GeForce RTX 2060 Super Gaming X 8GB, 16GB Corsair Vengeance LPX, Noctua NH-U12S Chromax Black, Samsung 970 EVO Plus 500GB, Corsair RMx Series RM750x, Corsair obsidian 750D
leonardo73 è offline   Rispondi citando il messaggio o parte di esso
Old 04-06-2010, 09:08   #14
MaxArt
Senior Member
 
L'Avatar di MaxArt
 
Iscritto dal: Apr 2004
Città: Livorno
Messaggi: 6659
Quote:
Originariamente inviato da kk3z Guarda i messaggi
Io non mi riferisco alla chiamata a getElementsByName() ma all'uso di firstChild, che in firefox in questo caso punta a un textnode (in explorer invece punta alla table).
Mah, precisazione un po' pignola, visto che il contenuto è stato definito con innerHTML, e quindi anche in Firefox firstChild punta alla tabella.

Quote:
Originariamente inviato da leonardo73 Guarda i messaggi
basta che questo non significhi fare le cose peggio
personalmente credo che la cosa con cui bisogna prendere confidenza da subito sono le API.
Non ci fai tutto con jQuery. A mio avviso ha una filosofia abbastanza diversa dal JavaScript "puro" da farmi dire che in pratica si tratta di un altro linguaggio. E questo, invero, fa apprezzare il lavoro di John Resig, ma rimango dell'opinione che per i neofiti sia meglio impararla un po' "più in là", per meglio apprezzare (ed usare) gli strumenti che poi verranno usati.
__________________
HWU Rugby Group :'( - FAQ Processori - Aurea Sectio - CogitoWeb: idee varie sviluppando nel web
MaxArt è offline   Rispondi citando il messaggio o parte di esso
Old 04-06-2010, 10:30   #15
leonardo73
Senior Member
 
L'Avatar di leonardo73
 
Iscritto dal: Feb 2010
Messaggi: 523
Quote:
Originariamente inviato da MaxArt Guarda i messaggi
Non ci fai tutto con jQuery. A mio avviso ha una filosofia abbastanza diversa dal JavaScript "puro" da farmi dire che in pratica si tratta di un altro linguaggio. E questo, invero, fa apprezzare il lavoro di John Resig, ma rimango dell'opinione che per i neofiti sia meglio impararla un po' "più in là", per meglio apprezzare (ed usare) gli strumenti che poi verranno usati.
intendevo che se devi fare una cosa con javascript che si può fare anche con jquery, non vale la pena se la implementi peggio

per quanto riguarda la faccenda del neofita, quello che volevo dire è che a prescindere dal linguaggio, dal framework o dal prodotto, prendere confidenza da subito con le API è un vantaggio innegabile.

chiaramente si tratta di uno sforzo aggiuntivo al semplice imparare a programmare ma è uno sforzo che si ripaga con gli interessi in poco tempo; parlo per esperienza personale ... visto che ho fatto esattamente il contrario
__________________
AMD Ryzen 5 3600X, ASUS ROG Crosshair VII hero, MSI GeForce RTX 2060 Super Gaming X 8GB, 16GB Corsair Vengeance LPX, Noctua NH-U12S Chromax Black, Samsung 970 EVO Plus 500GB, Corsair RMx Series RM750x, Corsair obsidian 750D
leonardo73 è offline   Rispondi citando il messaggio o parte di esso
Old 04-06-2010, 11:02   #16
MaxArt
Senior Member
 
L'Avatar di MaxArt
 
Iscritto dal: Apr 2004
Città: Livorno
Messaggi: 6659
Anche io ho fatto proprio il contrario. Ma, per quanto apprezzi il lavoro che c'è dietro a jQuery, preferisco sempre non usarlo. Mi sono creato i miei strumenti, senza fronzoli, e nella stragrande maggioranza dei casi uso quelli.

La mia è un'opinione che si riferisce in maniera peculiare a jQuery. Ci sono tante librerie che non hanno lo stesso effetto, diciamo pure che non ti "drogano" facendo di te un programmatore che non può più farne a meno come fa jQuery.
Invece, dopo che si ha un po' di esperienza, si può meglio usare e apprezzare l'utilità di quella libreria.

Per fare un esempio, prima kk3z ha consigliato di usare .children("table:first"): questa funzione va bene nel caso specifico, ma se andiamo a guardare il codice che gira si vede che fa un casino pazzesco per restituire UN elemento (il che è pure normale, visto che deve fare il parsing di "table:first").
Se si impara da subito a programmare così, non ci si accorge che dal punto di vista delle performance questo fa schifo, e può andare bene solo se si fa un numero limitato di chiamate.
Invece, usare .firstChild è veloce e immediato, e può essere usato in ogni caso.
__________________
HWU Rugby Group :'( - FAQ Processori - Aurea Sectio - CogitoWeb: idee varie sviluppando nel web
MaxArt è offline   Rispondi citando il messaggio o parte di esso
Old 04-06-2010, 15:04   #17
leonardo73
Senior Member
 
L'Avatar di leonardo73
 
Iscritto dal: Feb 2010
Messaggi: 523
Quote:
Originariamente inviato da MaxArt Guarda i messaggi
Se si impara da subito a programmare così, non ci si accorge che dal punto di vista delle performance questo fa schifo, e può andare bene solo se si fa un numero limitato di chiamate.
Invece, usare .firstChild è veloce e immediato, e può essere usato in ogni caso.
ok messa così ti do ragione, anche se non mi sono mai messo a vedere che fa jquery detto proprio sinceramente; personalmente lo uso in modo light e non ho mai avuto problemi di performance, ma di solito lo uso per i fronzoli
__________________
AMD Ryzen 5 3600X, ASUS ROG Crosshair VII hero, MSI GeForce RTX 2060 Super Gaming X 8GB, 16GB Corsair Vengeance LPX, Noctua NH-U12S Chromax Black, Samsung 970 EVO Plus 500GB, Corsair RMx Series RM750x, Corsair obsidian 750D
leonardo73 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema Insta360 Luna Ultra: la potenza del sensore da 1...
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Nuova rimodulazione per il fisso di TIM ...
iPhone 18 Pro e Pro Max, preordini sotto...
Ha craccato 26 giochi: ora Denuvo vuole ...
Xiaomi 18 Pro, il lancio è uffici...
Spotify introduce una nuova impostazione...
007 First Light introduce il path tracin...
Apple amplia iCloud+ e include Apple TV ...
IA e lavoro, non ci sono solo cattive no...
Antenne 5G e campo elettromagnetico: la ...
HONOR Watch 6 torna in offerta a 169,90 ...
Tutte le offerte Amazon di oggi: Google ...
Diesel alle stelle e benzina in rialzo: ...
Un bambino di 9 anni clicca su 'Promuovi...
Costruito per durare: verso un'operativi...
Il Galaxy A18 4G è ufficiale: un ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 14:29.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v