dimanche 4 juillet 2021

global variable are treated local

at the first line i declared a variable with a boolean value false i have a loop which has two if conditions one which checks for the boolean value , if false then it do it's work then re-declare it as true , then another if condition check if it's true and do it's work , the problem is when it re-declares the variable it appears to be only re-declared locally as the second if does't meet the condition and the loop keeps running and meeting the first if

window.onload=()=>{
var CellIntiation=false
var AddOperator = document.getElementsByClassName("AddOperator")
for(var a=0;a<AddOperator.length;a++){
    AddOperator[a].onclick=()=>{
        var TableRows = document.getElementsByTagName("tr")
        var Operator = document.getElementsByClassName("Operator")
        for(var b=0;b<Operator.length;b++){
            Operator = Operator[b].value
            for(var c=2;c<TableRows.length;c++){
                var TableRow = TableRows[c]
                var TableColumns = TableRow.getElementsByTagName("td")
                for(var d = 0;d<TableColumns.length;d++){
                    var TableColumn = TableColumns[d]
                    console.log(TableColumns)
                    if(TableColumn === TableColumns[TableColumns.length-1] && CellIntiation===false){
                        CellIntiation = true
                        TableRow.innerHTML += `<td rowspan="1">${Operator}</td>`
                        break
                    }
                    if(TableColumn === TableColumns[TableColumns.length-1] && CellIntiation===true){
                        if(TableColumn.className==="MainCell"){
                            var RowSpan = Number(TableColumn.getAttribute("rowspan"))
                            RowSpan +=2
                            RowSpan = RowSpan.toString()
                            TableColumn.setAttribute("rowspan",RowSpan)
                        }else if(TableColumn.className==="OperationCell"){
                            var RowSpan = Number(TableColumn.getAttribute("rowspan"))
                            RowSpan +=1
                            RowSpan = RowSpan.toString()
                            TableColumn.setAttribute("rowspan",RowSpan)
                        }
                        TableRow.innerHTML += `<tr><td rowspan="1">${Operator}</td></tr>`
                        break
                    }
                }    
            }
        }
    }
}
Again()

}

Aucun commentaire:

Enregistrer un commentaire