제이쿼리 $.inArray 질문입니다.

제이쿼리 $.inArray 질문입니다.

QA

제이쿼리 $.inArray 질문입니다.

본문


<span class="test" data-val="1"></span>
 
 
<script>
$('.test').click(function () {
 var data_value = $(this).attr('data-val');   // 1
 var arr = [1,2,3];
 
 if ($.inArray(data_value, arr) != -1) {
  alert('배열에 속해있음');
 } else {
  alert('no');
 }
 
});
</script>

 

제이쿼리 inarray  이렇게 쓰는게 아닌가요??

attr로 값가져와서 하면 else 구문을 타고

 

var data_value = 1;

이렇게 주고하면 작동이 잘되는데..

 

뭐가 잘못된건지 모르겠습니다..

 

 

 

이 질문에 댓글 쓰기 :

답변 1

data-value 는 "1" 문자열이고,

arr 의 각 요소 1, 2, 3 은 숫자형이라 그렇습니다.

 

var data_value = $(this).attr('data-val'); 

->

var data_value = parseInt($(this).attr('data-val'), 10);   

으로 해주면 됩니다.

 

추가로 data-val 의 값은,

attr() 로 가져오는 것보다는 data() 로 가져오는 것이 더 좋습니다. https://www.broken-links.com/2010/11/18/data-attributes-in-html-and-jquery/

$(this).attr('data-val')

->

$(this).data('val')

답변을 작성하시기 전에 로그인 해주세요.
전체 65
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT