Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    585

    Si puo' usare regex con piu' document.getelementbyid ??

    Ciao a Tutti,

    ho la seguente funzione:

    function f1 () {
    if (j_var == 0) {
    document.getElementById("file_u1").disabled = true;
    document.getElementById("file_u2").disabled = true;
    document.getElementById("file_u3").disabled = true;
    document.getElementById("file_u4").disabled = true;
    }
    }

    quando viene richiamata i vari elementi sopra indicati risulteranno disattivi al verificarsi della condizione. Fin qui tutto OK !!

    Volevo chiedere se con una regex, in modo particolare il punto che indica un carattere qualunque,
    e' possibile ottenere una cosa del tipo:

    function f1 () {
    if (j_var == 0) { document.getElementById("file_u" + [.]).disabled = true; }
    }

    cioe' un' unica riga in cui solo i primi 4 elementi aventi il TagName input risultino disattivi, senza per forza di cose ricorrere ad un ciclo for.

    Grazie in anticipo !!!

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2014
    residenza
    Voltati
    Messaggi
    913
    No.

    Puoi fare così:
    codice:
    function byRegExpId (regex) {
        var elementi = document.getElementsByTagName("*"),
            result = [],
            i = -1;
        while (++i < elementi.length) {
            if (element[i].id && regex.test(elementi[i].id)) {
                result.push(elementi[i]);
            }
        }
        return result;
    }
    
    var elements = byRegExpId(/?file_u[1-4]/), element;
    while (element = elements.shift()) {
        element.disabled = true;
    }
    No

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    585
    Grazie mille !!!

    Codice molto bello ... speravo pero' che la cosa fosse piu' semplice

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2014
    residenza
    Voltati
    Messaggi
    913
    Uh, togli quel ? che ho messo nell'espressione regolare.
    E questa funzione è molto poco performante...
    No

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.