Visualizzazione risultati 1 fino 14 di 14

Discussione: getElementsBy...

  1. #1
    L'avatar di radiodelmomento
    radiodelmomento non è connesso AlterGuru
    Data registrazione
    09-09-2010
    Messaggi
    1,075

    Question getElementsBy...

    Ciao a tutti.
    Avrei bisogno di selezionare, tramite getElementsBy[non so cosa] tutti gli elementi della pagina dove è settato un attributo (ad esempio "title").
    Codice HTML:
    <a>non viene selezionato</a>, mentre <a title="something">viene selezionato</a>
    Grazie.

  2. #2
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Putroppo quel modello di nomi non è stato più seguito, adesso abbiamo querySelectorAll, per ottenere gli elementi che soddisfano un dato selettore CSS.

  3. #3
    L'avatar di radiodelmomento
    radiodelmomento non è connesso AlterGuru
    Data registrazione
    09-09-2010
    Messaggi
    1,075

    Predefinito

    Quindi...?

  4. #4
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Usa querySelectorAll.

  5. #5
    Guest

    Predefinito

    Prova a ciclare TUTTI gli elementi della pagina e nel caso questi presentino l'attributo cercato (titolo) li inserisci in un array. il risultato sarà che l'array conterrà gli elementi con l'attributo cercato.

  6. #6
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Citazione Originalmente inviato da simpleticket Visualizza messaggio
    Prova a ciclare TUTTI gli elementi della pagina e nel caso questi presentino l'attributo cercato (titolo) li inserisci in un array. il risultato sarà che l'array conterrà gli elementi con l'attributo cercato.
    Ma perché complicarsi la vita? Quei metodi lì li hanno proprio introdotti per evitare di dover fare tutti questi giri (o di doversi appoggiare a pesanti e lente librerie)...

  7. #7
    Guest

    Predefinito

    Peccato che, ad esempio, su IE 7 non funzioni.

    So che tu sei contro questi discorsi, ma per me, lasciare fuori il 50% dei browser non è una scelta oculata.

  8. #8
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Si usa querySelectorAll comunque. Poi, se la feature è aggiuntiva e non essenziale, su IE7 non si vede. Se la feature è necessaria, allora si prende una implementazione javascript della funzione (e.g. jQuery) e si aiuta IE7 con quella.

    Essendo javascript, non dovrebbe essere comunque necessario per il funzionamento del sito, visto che possono capitarti persona che lo hanno disabilitato.

    La pratica migliore è
    • costruire un sito che non ha bisogno di javascript
    • aggiungere dettagli in javascript utilizzando l'implementazione più a-prova-di-domani, così da non doverla aggiustare di continuo
    • se si vuole, implementare in modo alternativo (polyfill) per i browser più vecchi

  9. #9
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Mi hai strappato le parole di bocca...

  10. #10
    Guest

    Predefinito

    Citazione Originalmente inviato da dreadnaut Visualizza messaggio
    Si usa querySelectorAll comunque. Poi, se la feature è aggiuntiva e non essenziale, su IE7 non si vede. Se la feature è necessaria, allora si prende una implementazione javascript della funzione (e.g. jQuery) e si aiuta IE7 con quella.

    Essendo javascript, non dovrebbe essere comunque necessario per il funzionamento del sito, visto che possono capitarti persona che lo hanno disabilitato.

    La pratica migliore è
    • costruire un sito che non ha bisogno di javascript
    • aggiungere dettagli in javascript utilizzando l'implementazione più a-prova-di-domani, così da non doverla aggiustare di continuo
    • se si vuole, implementare in modo alternativo (polyfill) per i browser più vecchi
    Concordo su tutta la linea quando dici che bisogna pensare (e realizzare) il lavoro per l'uso SENZA Javascript.

    Riguardo l'uso di Framework, qui mi pare che non se ne era parlato e quindi l'ho escluso.

    Permettimi però che piuttosto che usare il selettore nuovo e poi scrivere due-tre-più routine (per i singoli browser) mi comporta il moltiplicarsi del lavoro, lavoro che comunque dovrò fare nel caso ricada in uno dei casi che lo richieda.
    Per cui, perchè non scrivere 5 righe per una funzione, e scriverne decine per prevedere tutti i casi?

    Diverso il caso, certamente, in cui l'impegno richiesto non si ferma alle 5 righe di codice della funzioncina banale. In quel caso allora non conviene più scriversela ma l'uso di framework potrebbe essere la strada più indolore.

  11. #11
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Eh? Non devi scrivere due-tre-più routine, devi caricare (condizionalmente) un singolo spezzone di javascript che implementa la funzione per browser i che non l'hanno a disposizione (che non deve necessariamente essere un framework).

    Il bello è che il tuo codice non cambia di una riga: se il browser è nuovo, la funzione (e.g. querySelectorAll) è li pronta, se il browser è vecchio, il polyfill la implementa per te.

    Dai un'occhiata su HTML5 Please oppure Can I Use magari: per ogni feature "nuova" puoi vedere quali browser la supportano, e quali implementazioni alternative esistono già pronte.

    Anche questi articoli danno buoni spunti, anche se da un particolare punto di vista:
    http://blog.responsivenews.co.uk/pos...ng-the-mustard
    http://blog.responsivenews.co.uk/pos...our-javascript
    Ultima modifica di dreadnaut : 02-05-2012 alle ore 00.23.42

  12. #12
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Citazione Originalmente inviato da dreadnaut Visualizza messaggio
    Eh? Non devi scrivere due-tre-più routine? Devi caricare (condizionalmente) un singolo file javascript (che non deve essere un framework) che implementa la funzione per browser i che non l'hanno a disposizione.

    Il bello è che il tuo codice non deve cambiare di una riga: se il browser è nuovo, la funzione (e.g. querySelectorAll) è li pronta, se il browser è vecchio, il polyfill la implementa per te.
    La cosa ancora più bella di questa soluzione è che i browser in regola non sono svantaggiati dallo scaricare tonnellate di materiale inutile (le funzioni che implementano già nativamente), inoltre possono direttamente usare le implementazioni native delle tecnologie utilizzate (avendo dunque le massime prestazioni), al contrario dei browser vetusti che invece dovranno eseguire le implementazioni scritte in Javascript su dei motori probabilmente vetusti (e dunque lenti) anch'essi.

  13. #13
    Guest

    Predefinito

    Citazione Originalmente inviato da dreadnaut Visualizza messaggio
    Eh? Non devi scrivere due-tre-più routine, devi caricare (condizionalmente) un singolo spezzone di javascript che implementa la funzione per browser i che non l'hanno a disposizione (che non deve necessariamente essere un framework).
    Si bravo. Peccato che il singolo spezzone non si auto-scrive. Devi cmq scriverlo e renderlo disponibile per quando ti serve, ergo ...

    Poi se volete ingigantire la cosa fatelo, ma mi pare di avere chiaramente scritto che non stiamo parlando di tonnellate di materiale (ho scritto che per cose consistenti le vie da seguire sono altre) ma del caso specifico.

    Ma ... mi pare che si sta andando un po' troppo OT, io chiudo qui.
    Ultima modifica di simpleticket : 02-05-2012 alle ore 10.08.44

  14. #14
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Citazione Originalmente inviato da simpleticket Visualizza messaggio
    Si bravo. Peccato che il singolo spezzone non si auto-scrive. Devi cmq scriverlo e renderlo disponibile per quando ti serve, ergo ...
    Ergo ignori il fatto che questa roba sia stata già scritta, si disponibile online, e basti riusarla.

    Comunque hai ragione, torniamo in-topic. Tu scrivi una pagina di esempio per radiodelmomento come preferisci, ed io ne scrivo una come voglio io, poi le confrontiamo.
    Ultima modifica di dreadnaut : 02-05-2012 alle ore 14.25.09

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •