Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    [javascript] agire su tutti i div tranne uno

    ciao, mi spiego xke non ho trovato un titolo adatto

    ho dei div con degli id numerici, esempio 1, 2, 3, 4, 5...

    con una funziona, onclick="chiudi('3');" devo cambiare la classe a tutti i div, tranne al numero 3

    i div potrebbero essere anche 1000 mentre il div da non "chiudere" è sempre solo uno.

    come posso fare?


    grazie sin da ora

  2. #2
    mmm, a parte che io non userei dei numeri come id, ma, al max, fare una cosa come:

    <div id="d1" />
    <div id="d2" />
    <div id="d3" />

    L'idea è di ottenere tutti i div e controllarli con un ciclo (metti di avere gli id come nell'esempio che ti ho fatto):

    Codice PHP:
    function chiudi(id){
       
    //Counter deve essere il numero dal quale comincio a contare
       
    var counter 1
       while(
    div document.getElementById("d"+counter))
       {
          if(
    id != "d"+counter)
          {
              
    div.className "nuovaClasse";
          }
          else
          {
              
    div.className "altraClasse";
          }
       }


  3. #3
    si si gli id sono alfanumerici come da w3c... ma ad ogni modo ad un certo punto un numero unico cè..


    ma non è un sistema un po' invasivo?? se il primo id è il 600'000'000? mi cicla 600 milioni di volte?

  4. #4
    Se analizzi il codice, funziona solo finché trova un altro div, certo i numeri devono essere consecutivi. Cioé:

    <div id="d1" />
    <div id="d2" />
    <div id="d3" />
    <div id="d5" />
    <div id="d6" />
    <div id="d7" />

    Cicla fino al 3 e basta, perché il 4 manca.

    Comunque, l'idea è di cicliare su tutti i div della pagina con gli id del tipo da te indicati, che, per quanti siano, in Js, in pochi millisecondi anche diverse centinaia li fa andare.

    La questione però diventa: come puoi inserire anche solo un milione di div in una pagina e sperare che sia visualizzabile in un browser normale su di un PC normale?

  5. #5
    è ipotetico...

    no ovviamente gli id non saranno praticamente mai consecutivi...

    io invece che ciclare pensavo ad una regexp...

    in pratica

    esegui className dove id = "d"+[numeri da 1 a 9]

    tranne dove id = d3



    ....

  6. #6
    io, se devo fare operazioni simili, utilizzo le classi: metto una classe unica per gli elementi che devo controllare, poi li identifico dall'id.


    Codice PHP:
    function chiudi(id, class)
    {
       var 
    allDivs document.getElementsByTagName('div');
       for(
    0allDivs.lengthi++)
       {
           if(
    allDivs[i].className.indexOf(class) >= 0)
           {
                if(
    allDivs[i].id == id)
                {
                    
    //Applico la classe per il div indicato
                

                else
                {
                    
    //Applico la classe per il div non indicato
                
    }
           }
       }


  7. #7
    purtroppo non posso, xke l'apparizione o sparizione dei div avviene proprio tramite classe...

    in pratica sono strutturati cosi

    <div id="d1" class="aperto"></div>
    <div id="d2" class="aperto"></div>
    <div id="d3" class="aperto"></div>


    potrei fare qualcosa del tipo...

    className = chiuso where class= aperte and id != 3


    ??

  8. #8
    e che problema c'è nel mettercene 2 di class?

  9. #9
    2 classi??

    nello stesso contenitore?

  10. #10
    pensavo lo sapessi...

    <div id="MyId" class="class1 class2 class3"></div>

    Applica al div le regole di ciascuna classe inserita.

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.