• Super User

    [JS] Passare un array ed effettuare la somma degli elementi

    Salve a tutti,
    ho una lista di DIV dei quali sto prendendo la rispettiva altezza e vorrei sommarla.

    Visto che è un'operazione che dovrei ripetere diverse volte vorrei creare una funzione, ma non c'è qualcosa che non va:

    
    HeightDataTables = function (divList)
    {
        var sumDiv = 0
        for (i = 0; i < divList.length; i++) {
            sumDiv += $(divList*).outerHeight(true);
        }
        alert(sumDiv);
        return $(window).height() - sumDiv;
    }
    
    var divList = ["header", "#pageTitle"]
    alert(HeightDataTables(divList));
    
    

    Mi da errore nel JS dicendomi "L'oggetto non supporta la proprietà o il metodo 'HeightDataTables"

    Grazie.


  • User Attivo

    Ciao, felino.

    A occhio vedo un paio di sbagli. Prova così:

    
    function HeightDataTables(divList) {
         var sumDiv = 0
         for (i = 0; i < divList.length; i++) {
             sumDiv += $(divList*).outerHeight(true);
         }
         alert(sumDiv);
         return $(window).height() - sumDiv;
    }
    
    var divList = new Array("header", "pageTitle")
    alert(HeightDataTables(divList));
    
    

    Poi non sono sicuro della funzione $. Usi forse jQuery?

    EDIT: Quelli che credevo due sbagli sono semplicemente notazioni JS differenti da quelle che uso io.
    Ma credo che il problema sia proprio il $


  • Super User

    Buon dì a tutti!
    Sapete dov'era l'errore?
    Proprio nella definizione dell'ARRAY, una svita che mi ha fatto perdere un pò di tempo! 🙂

    Davello, grazie della tua osservazione:

    
    var divList = new Array("header", "pageTitle")
    
    

    Per il resto funziona perfettamente.

    Grazie a tutti.


  • User Attivo

    Come disse un saggio, "anche un'orologio rotto ha ragione due volte al giorno" 😉


  • Super User

    😉