2017-12-21 8 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

OK、 'let cloneFolderHTML'をどうすればいいですか?私はそれを 'var'に変更しますか? – Ananda

関連する問題