테스트 사이트 - 개발 중인 베타 버전입니다

제이쿼리 $.inArray 질문입니다. 채택완료

아기새 7년 전 조회 2,358

</p>

<p><span class="test" data-val="1"></span></p>

<p> </p>

<p> </p>

<p><script></p>

<p>$('.test').click(function () {</p>

<p> var data_value = $(this).attr('data-val');   // 1</p>

<p> var arr = [1,2,3];</p>

<p> </p>

<p> if ($.inArray(data_value, arr) != -1) {</p>

<p>  alert('배열에 속해있음');</p>

<p> } else {</p>

<p>  alert('no');</p>

<p> }</p>

<p> </p>

<p>});</p>

<p></script></p>

<p>

 

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

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

 

var data_value = 1;

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

 

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

 

 

 

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

채택된 답변
+20 포인트
7년 전

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')

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

아기새
7년 전
자세한 답변 감사합니다.. 좋은거 배우고갑니다..

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인