Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012

    splice su object collection

    buongiorno a tutti

    e' un pò che ci sbatto la testa e alla fine mi trovo a postare una cosa che, per alcuni sicuramente, è banalissima.

    ho una collezione di checkbox, e in un ciclo for identifico quelle non selezionate e le elimino dall' array.

    splice non funziona e nemmeno null

    ecco il codice

    codice:
      for (b=0; b < global_div.length; b++)
        if (global_div[b].id == 'variante_righe') check_list.push(global_div[b]);
        
      for (var c=0; c < check_list.length; c++)
        {
        if (typeof(select_list[c]) == 'object')
          {
          var temp_arr = check_list[c].getElementsByTagName('input');
          for (var q=0; q < temp_arr.length; q++)
            {
            //alert (check_of[c][q].value);
            if (temp_arr[q].checked == false)
              {
              alert (temp_arr[q].value);
              temp_arr.splice(q,1);
              }
            }
          check_of[c]=temp_arr;
          }
        }
    la riga incriminata è questa
    codice:
    temp_arr.splice(q,1);
    dove FF mi dice che "is not a function"

    dove sbaglio???

    inoltre, come posso vedere lo stato dell' array, inteso come elementi,per fare un pò di dumping? è corretto splice per eliminare un elemnto in una getElements?

    grazie a tutti
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  2. #2
    qui

    a sort of DOM-specific array that holds nodes
    Una NodeList non ha le stesse proprietà/metodi di un array.





    PS.
    L'inizio dello script assomiglia + all'ostrogoto
    che a js scusa ma non ti basta un semplice
    Codice PHP:
    var tmp= [];
    var 
    targetdocument.getElementById('variante_righe');
    var 
    inputListtarget.getElementsByTagName('input');
    for(var 
    i=0;i<inputList.length;i++){
        if(
    inputList.item(i).type=='checkbox'){
            if(
    inputList.item(i).checked==true){
                
    tmp.push(inputList.item(i));
            }
        }

    PPS nel codice ci possono essere errori perchè non lo testato




    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  3. #3
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    Originariamente inviato da whisher
    qui



    Una NodeList non ha le stesse proprietà/metodi di un array.





    PS.
    L'inizio dello script assomiglia + all'ostrogoto
    che a js scusa ma non ti basta un semplice
    Codice PHP:
    var tmp= [];
    var 
    targetdocument.getElementById('variante_righe');
    var 
    inputListtarget.getElementsByTagName('input');
    for(var 
    i=0;i<inputList.length;i++){
        if(
    inputList.item(i).type=='checkbox'){
            if(
    inputList.item(i).checked==true){
                
    tmp.push(inputList.item(i));
            }
        }

    PPS nel codice ci possono essere errori perchè non lo testato




    grazie whish

    hai ragione è austroungarico il mio ma purtroppo js lo conosco a grandi linee, e certe cose mi mancano proprio ( cerco di fare riferimento sempre a w3school ma certe cose ovviamente le espongono in maniera basilare

    per esempio var temp =[]; immagino sia inizializzazione di un aray,
    mentre io uso sempre var temp=new Array();

    vedrò di studiare di più!

    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  4. #4
    Originariamente inviato da dottwatson
    grazie whish

    hai ragione è austroungarico il mio ma purtroppo js lo conosco a grandi linee, e certe cose mi mancano proprio ( cerco di fare riferimento sempre a w3school ma certe cose ovviamente le espongono in maniera basilare

    per esempio var temp =[]; immagino sia inizializzazione di un aray,
    mentre io uso sempre var temp=new Array();

    vedrò di studiare di più!

    Links utili

    guida mdc

    reference


    dev guru 1


    dev guru 2





    Ps.
    Don't worry buddy you never know until you try
    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  5. #5
    invece di
    codice:
    temp_arr.splice(q,1);
    avresti potuto usare
    codice:
    Array.prototype.splice.call(temp_arr, q, 1);
    con tutti i browsers ... tranne Explorer
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  6. #6
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    Originariamente inviato da andr3a
    invece di
    codice:
    temp_arr.splice(q,1);
    avresti potuto usare
    codice:
    Array.prototype.splice.call(temp_arr, q, 1);
    con tutti i browsers ... tranne Explorer

    il web ringrazia Bug Gates
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

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.