아하
검색 이미지
생활꿀팁 이미지
생활꿀팁생활
생활꿀팁 이미지
생활꿀팁생활
훈훈한땅돼지217
훈훈한땅돼지21721.06.07

제이쿼리 변수 전역변수로 바꾸고싶은데 잘모르겠어요

$('#Algorithm> a').on('click', function () {

$('#dropdown').text($(this).text());

var Type = $(this).text();

});

드롭다운에서 선택한 값 변경하는거랑 선택한 값을 변수에 넣는데

이거는 전역변수로 사용못할것같은데

이걸 전역변수로 쓰고싶으면 어떻게 바꿔야할까요 ..

55글자 더 채워주세요.
답변의 개수
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


  • 탈퇴한 사용자
    탈퇴한 사용자21.06.07

    안녕하세요.

    var Type을 전역변수로 하고 싶다는 건지요?

    참고로 전역변수는 프레임워크에서 사용하는게 아니면 사용 안하는게 좋습니다.

    아래처럼 사용할 수는 있습니다.

    jQuery(function($) { var type; $('#Algorithm > a').on('click, function() { type = $(this).text(); $('#dropdown').text(type); }); // 바깥 부분에서 type 변수 사용 가능 });