Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
vivo X300 Pro rappresenta un'evoluzione misurata della serie fotografica del produttore cinese, con un sistema di fotocamere migliorato, chipset Dimensity 9500 di ultima generazione e l'arrivo dell'interfaccia OriginOS 6 anche sui modelli internazionali. La scelta di limitare la batteria a 5.440mAh nel mercato europeo, rispetto ai 6.510mAh disponibili altrove, fa storcere un po' il naso
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2 è la nuova handheld PC gaming con processore AMD Ryzen Z2 Extreme (8 core Zen 5/5c, GPU RDNA 3.5 16 CU) e schermo OLED 8,8" 1920x1200 144Hz. È dotata anche di controller rimovibili TrueStrike con joystick Hall effect e una batteria da 74Wh. Rispetto al dispositivo che l'ha preceduta, migliora ergonomia e prestazioni a basse risoluzioni, ma pesa 920g e costa 1.299€ nella configurazione con 32GB RAM/1TB SSD e Z2 Extreme
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
A re:Invent 2025, AWS mostra un’evoluzione profonda della propria strategia: l’IA diventa una piattaforma di servizi sempre più pronta all’uso, con agenti e modelli preconfigurati che accelerano lo sviluppo, mentre il cloud resta la base imprescindibile per governare dati, complessità e lock-in in uno scenario sempre più orientato all’hybrid cloud
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 01-06-2010, 14: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, 19: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 19:58.
MaxArt è offline   Rispondi citando il messaggio o parte di esso
Old 02-06-2010, 00: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, 01: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, 12: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, 13: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, 13: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, 14: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, 15: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, 15: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, 16: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, 16: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 16:55.
kk3z è offline   Rispondi citando il messaggio o parte di esso
Old 03-06-2010, 16: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, 10: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, 11: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, 12: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, 16: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


Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria Recensione vivo X300 Pro: è ancora lui il...
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'...
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti AWS re:Invent 2025: inizia l'era dell'AI-as-a-Se...
Cos'è la bolla dell'IA e perché se ne parla Cos'è la bolla dell'IA e perché se...
BOOX Palma 2 Pro in prova: l'e-reader diventa a colori, e davvero tascabile BOOX Palma 2 Pro in prova: l'e-reader diventa a ...
Tory Bruno ha lasciato la società...
L'immagine di Natale del telescopio spaz...
STMicroelectronics e SpaceX proseguono l...
Numeri da record, Xiaomi distribuisce ol...
BitLocker accelerato via hardware: Micro...
Blue Origin prosegue lo sviluppo dei lan...
Moore Threads: nuove GPU 15 volte pi&ugr...
Steam diventa esclusivamente 64-bit: Val...
La Corte Suprema restituisce a Elon Musk...
X lancia Creator Studio su mobile: nuovi...
Dieci anni fa SpaceX fece atterrare per ...
POCO M8 e M8 Pro arriveranno nel 2026: e...
Caos Formula 1: il motore Mercedes &egra...
Tariffe nazionali per le chiamate e gli ...
Tassa chilometrica non solo per elettric...
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: 03:07.


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