2017-12-21 1 views
0

이 오류가 발생합니다. 내 cloneFolderHTML이 정의되지 않았습니다

ReferenceError: cloneFolderHTML is not defined

initialCopy.push({ 
     clonefolder: cloneFolderHTML 
     }); 

는이 요소에 액세스 할 날없는했고, 나는 코드가 작동 할 수 있도록 페이지를 다시로드해야했다. 콘솔을 열 때 cloneFolderHTML이 정의되지 않았다는 것을 압니다.

submitButton 함수 외부에서 호출하는 방법은 무엇입니까?


jQuery를 :

$('.submitButton').click(function() { 
    function copyFolderList(cloneFoldername) { 
    var cloneFolder = /** HTMLCODE **/; 
    return cloneFolder; 
    } 

    if (/* code */) { 
    // some code 
    } else { 
    var cloneFolder = JSON.parse(localStorage.getItem("copyList")); 
    if (cloneFolder == null) { 
     cloneFolder = []; 
    } 
    let cloneFolderHTML = copyFolderList(inputan); 
    cloneFolder.push({ 
     clonefolder: cloneFolderHTML 
    }); 
    localStorage.setItem("copyList", JSON.stringify(cloneFolder)); 
    $("#navcopyrow").append(cloneFolderHTML); 
    } 
}); // submitButton function 


var cloneFolder = JSON.parse(localStorage.getItem("copyList")); 
if (cloneFolder != null) { 
    //get the nav reference in DOM 
    let navcopy = $("#navcopyrow"); 

    //clear the html contents 
    navcopy.html(''); 

    for (var i = 0; i < cloneFolder.length; i++) { 
    var copyitem = cloneFolder[i]; 
    $("#navcopyrow").append(copyitem.clonefolder); 
    } 
} else { 
    let initialCopy = []; 
    initialCopy.push({ 
    clonefolder: cloneFolderHTML 
    }); 
    localStorage.setItem("copyList", JSON.stringify(initialCopy)); 
} 

내가 submitButton 함수 외부 cloneFolderHTML를 호출 할 수 있습니까?

답변

0
let cloneFolderHTML 

let 변수 블록 범위 ECMAScript를 만드는 6 예약어이다. 그것의 범위 안에서만 존재한다는 것을 의미하는 것은 즉시 캡슐화된다 {}. 변수는 else의 {}에 있기 때문에 else 블록 안에 만 존재합니다.

참조 : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let

+0

처음으로 요소를 선택할 수없는 이유는 무엇입니까? 요소를 선택하려면 다시로드해야합니다. – Ananda

+0

질문을 이해할 수 없습니다. – Taplar

+0

좋아, 'let cloneFolderHTML'으로 무엇을해야합니까? 나는 그것을'var'으로 바꾼다? – Ananda

관련 문제