아핫뉴스실시간 인기검색어
아핫뉴스 화산 이미지
아하

생활

생활꿀팁

훈훈한땅돼지217
훈훈한땅돼지217

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

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

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

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

});

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

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

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

    55글자 더 채워주세요.
    3개의 답변이 있어요!
    • HappyDad
      HappyDad

      간단히 설명 드리면

      함수(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 변수 사용 가능 });