Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Style e Javascript

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2014
    residenza
    Padova
    Messaggi
    6

    Style e Javascript

    Ciao a tutti, sto imparando ora Javascript, per cui perdonatemi se la domanda pare ovvia, ma non ho trovato risposte navigando.
    Il fatto è che, per quanto ne so io, per cambiare stile a un elemento (facciamo un <p>) con js devo prima trovare il nodo e poi cambiare lo stile, tipo:

    codice:
    ...
    <p id="id_assegnato"></p>
    ...
    <script>
    
    var para = document.getElementById("id_assegnato");
    para.style.color = "green";
    
    </script>

    oppure con jQuery:

    codice:
    var para = $("#id_assegnato");
    para.style.color = "green"

    Ok, applicare color a un paragrafo non è il massimo, ma giusto come esempio.
    Io l' ho imparato così da varie fonti.

    La prima versione funziona, la versione con jQuery mi dice che "para is not defined".
    La cosa che mi mette in crisi però è che questo script:

    codice:
    <script>
    id_assegnato.style.color = "green"
    </script>

    da solo, senza librerie di alcun tipo e altro, funziona benissimo in tutti i browser.. ma io non ho definito "id_assegnato" da nessuna parte, è appunto solo l'id che ho dato al <p>.
    Io sapevo che bisognava definirlo l'elemento, invece così pare che basti scrivere l'id assegnato all'elemento così com'è e buonanotte.. ma mi par così strano.

    Qualche suggerimento? Mi sono perso qualcosa?

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    stai provando con IE?
    se e' questo il caso id_assegnato.style... funziona perche' IE e' molto permissivo e per retro-compatibilita' deve anche supportare un DOM proprietario che all' atto pratico gli permette di fare cose tipo queste (cosi' come confondere name e id, o diventare case-insensitive con gli id, etc...)

    Il modo corretto di accedere agli elementi via DOM e' con un metodo del DOM, quindi document.getElementById e simili

    l' esempio di jquery e' sbagliato perche' se usi jquery per selezionare un elemento poi devi usare i metodi di jquery per lavorare con esso
    quindi
    para.css('color','green')
    oppure, cosa che non tutti sanno, riottenere l' elemento del DOM originario via
    para[0].style.color='green'

    ciao, buon proseguimento

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2014
    residenza
    Padova
    Messaggi
    6
    Grazie mille per la pronta risposta, in effetti con jQuery ho confuso le cose.. però stavo testando su Firefox e Chrome. Si vede che anche loro hanno un tot di "elasticità".. per me l'importante è sapere che il metodo che uso è giusto e non è "superato".

  4. #4
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    controordine su id_assegnato.style
    francamente mi suona stranissimo, e non va usato, ma a quanto pare funziona

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    ci sono alcuni casi in cui fare riferimento ad un elemento senza usare il metodo getElementById causa un errore, ad esempio se l'id è "id-assegnato".

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2014
    residenza
    Padova
    Messaggi
    6
    a dire il vero "id-assegnato" era solo a scopo di esempio, non è l'id che stavo usando

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    non hai capito, ho solo detto che se usi dei caratteri speciali nell'id, se fai rifermento a quell'elemento senza usare i metodi del DOM avrai un errore, spero sia chiaro ora

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2014
    residenza
    Padova
    Messaggi
    6
    non ho detto che non avevo capito, la mia era solo una puntualizzazione.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.