생활
제이쿼리 변수 전역변수로 바꾸고싶은데 잘모르겠어요
$('#Algorithm> a').on('click', function () {
$('#dropdown').text($(this).text());
var Type = $(this).text();
});
드롭다운에서 선택한 값 변경하는거랑 선택한 값을 변수에 넣는데
이거는 전역변수로 사용못할것같은데
이걸 전역변수로 쓰고싶으면 어떻게 바꿔야할까요 ..
3개의 답변이 있어요!
간단히 설명 드리면
함수(Function) 안에서 선언되면 '지역'변수, 함수 바깥에서 선언되면 '전역'변수이고 상대성을 가지고 있습니다.
var global = 'global' $(document).ready(function(){ var foo = 'foo' function variable_A(){ var bar= 'bar' } })위 코드를 예로들면,
bar 변수는 varialble_A 함수의 지역변수입니다.
foo 변수는 varialble_A 기준으로 전역변수이고 $(document).ready() 함수 기준으로는 지역변수입니다.
global 변수는 어느 함수에도 포함되어있지 않기 때문에 어디에서도 접근 가능한 전역변수 입니다.
같은 맥락으로 문의하신 코드의 Type 변수를 전역으로 사용하시려면 아래와 같은 방식으로 진행하시면 됩니다.
var Type = ''; // 전역변수를 만들고 초기값 할당 $('#Algorithm> a').on('click', function () { Type= $(this).text(); // 전역변수에 클릭한 요소의 text정보를 담는다 $('#dropdown').text(Type); });변수에 scope 에 대한 공부가 선행되셔야 할것 같습니다.
일단 코드만 보여드리면 아래와 같습니다.
var Type = ""; $('#Algorithm> a').on('click', function () { $('#dropdown').text($(this).text()); Type = $(this).text(); });변수는 변수가 생성 혹은 값이 할당되는 괄호({}) 의 범위를 넘어가면 값이 초기화되거나 삭제됩니다.
아래 두 글 보시면 자세히 설명되어있으니 공부하실때 유용하실것 같습니다 ^^
https://poiemaweb.com/js-scope
https://medium.com/@yeon22/javascript-%EC%8A%A4%EC%BD%94%ED%94%84-scope-%EB%9E%80-bc761cba1023
안녕하세요.
var Type을 전역변수로 하고 싶다는 건지요?
참고로 전역변수는 프레임워크에서 사용하는게 아니면 사용 안하는게 좋습니다.
아래처럼 사용할 수는 있습니다.
jQuery(function($) { var type; $('#Algorithm > a').on('click, function() { type = $(this).text(); $('#dropdown').text(type); }); // 바깥 부분에서 type 변수 사용 가능 });