Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Deep Tech Revolution: così Area Science Park apre i laboratori alle startup
Deep Tech Revolution: così Area Science Park apre i laboratori alle startup
Siamo tornati nel parco tecnologico di Trieste per il kick-off del programma che mette a disposizione di cinque startup le infrastrutture di ricerca, dal sincrotrone Elettra ai laboratori di genomica e HPC. Roberto Pillon racconta il modello e la visione
HP OMEN MAX 16 con RTX 5080: potenza da desktop replacement a prezzo competitivo
HP OMEN MAX 16 con RTX 5080: potenza da desktop replacement a prezzo competitivo
HP OMEN MAX 16-ak0001nl combina RTX 5080 Laptop e Ryzen AI 9 HX 375 in un desktop replacement potente e ben raffreddato, con display 240 Hz e dotazione completa. Autonomia limitata e calibrazione non perfetta frenano l'entusiasmo, ma a 2.609 euro è tra le proposte più interessanti della categoria.
Recensione Google Pixel 10a, si migliora poco ma è sempre un'ottima scelta
Recensione Google Pixel 10a, si migliora poco ma è sempre un'ottima scelta
Google ha appena rinnovato la sua celebre serie A con il Pixel 10a, lo smartphone della serie più conveniente se consideriamo il rapporto tra costo e prestazioni. Con il chip Tensor G4, un design raffinato soprattutto sul retro e l'integrazione profonda di Gemini, il colosso di Mountain View promette un'esperienza premium a un prezzo accessibile. E il retro non ha nessuno scalino
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


Deep Tech Revolution: così Area Science Park apre i laboratori alle startup Deep Tech Revolution: così Area Science P...
HP OMEN MAX 16 con RTX 5080: potenza da desktop replacement a prezzo competitivo HP OMEN MAX 16 con RTX 5080: potenza da desktop ...
Recensione Google Pixel 10a, si migliora poco ma è sempre un'ottima scelta Recensione Google Pixel 10a, si migliora poco ma...
6G, da rete che trasporta dati a rete intelligente: Qualcomm accelera al MWC 2026 6G, da rete che trasporta dati a rete intelligen...
CHUWI CoreBook Air alla prova: design premium, buona autonomia e qualche compromesso CHUWI CoreBook Air alla prova: design premium, b...
NIO, ecco il profitto nel quarto trimest...
iRobot Roomba Mini: il robot aspirapolve...
Manda le DDR5 in assistenza, il venditor...
Scope elettriche lavapavimenti di marca ...
Delle oltre 750.000 offerte solo il 2% &...
Tutti gli smartphone più convenie...
MG annuncia MG4X, SUV con batteria allo ...
Ritratti professionali su fascia media: ...
Il biatleta ucraino Maksym Murashkovskyi...
Smartwatch Amazfit e Offerte di Primaver...
Offerte di Primavera: 4 TV hanno prezzi ...
Volkswagen, il nuovo piano porta i licen...
Un video AI inganna milioni di utenti, M...
Apple sorprende: nuovi MacBook Neo gi&ag...
Amazon vince: ingiunzione temporanea con...
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: 12:54.


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