Visualizzazione dei risultati da 1 a 9 su 9

Discussione: numero di videi

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2000
    Messaggi
    257

    numero di videi

    ho una serie di div che hanno come id
    video1
    video2
    video3
    etc...

    mi domando come possa fare una for in con il totale dei
    document.getElementById che inizino con "video"

    Per passargli dati omogenei come una classe.

    per il momento me la sto cavando cosi'

    for (i=1; i<=nVideo; i++){
    document.getElementById("video" + i).className = "displaynone";
    }

    ma nVideo e' un valore che gli do io, vorrei venisse ricavato automaticamente

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2000
    Messaggi
    257
    per iniziare come si fa a ricavare il numero di elementID presenti in una pagina?

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2000
    Messaggi
    257
    piccolo uppino

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    vuoi recuperare tutti gli elementi html che hanno l'attributo id valorizzato? si puo fare... ma sei sicuro che ti serva veramente, non so cosa tu voglia fare ma secondo me stai seguendo la strada sbagliata.

    Cmq una soluzione per recuperare tutti gli id potrebbe essere questa:

    codice:
    for (var i=0;i<document.getElementsByTagName('*').length;i++) 
    { 
     if (document.getElementsByTagName('*')[i].id) //elemento con attributo id presente
    }

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2000
    Messaggi
    257
    stavo per scriverlo. Grazie mille.

    Ma comunque in javascript qual'e' la funzione che mi permette di matchare due parole.

    In questo caso, se avesi voluto recuperare tutti gli ID che iniziassero con "video"
    come avrei dovuto scrivere la funzione che mi desse tutte le id che inziano con video?

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    io farei cosi

    codice:
    for (var i=0;i<document.getElementsByTagName('*').length;i++) 
    { 
     if (document.getElementsByTagName('*')[i].id && document.getElementsByTagName('*')[i].id.startsWith("video")){
       //elemento trovato
    }
    }
    
    String.prototype.startsWith = function(str) 
    {return (this.match("^"+str)==str)}
    Utilizzo una funzione esterna per facilitarmi la vita, ovviamente si può fare in altri mille modi... se hai necessità di salvarti tutti gli id in un contenitore utilizza un array.

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2000
    Messaggi
    257
    grazie mille ...

    me la spieghi bene questa?

    String.prototype.startsWith = function(str)
    {return (this.match("^"+str)==str)}

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    ripeto è solo ed esclusivamente per redersi la vita più facile(ma forse ho confuso le idee a te )... e rendere il codice piu pulito, la stessa cosa si poteva fare con una semplice substring... Quello che fa il metodo è verificare che l'oggetto stringa associato (this in questo caso corrisponde al'id che stai ciclando) inizi con il parametro di input indicato (str nel tuo caso corrisponde a "video"), questa operazione viene effettuata utilizzando le espressioni regolari

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2000
    Messaggi
    257
    Grazie, molto utile.
    Comunque ho risolto cosi'
    codice:
            function displaynone(TagName) {
                nTagName = (document.getElementsByTagName(TagName).length);
                for (i = 1; i <= nTagName; i++) {
                    ElementId = document.getElementById(TagName + i);
                    ElementId.className = "displaynone";
                }
            }

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 © 2026 vBulletin Solutions, Inc. All rights reserved.