wkfgkrhtlvek
458
2019-01-18 09:39:08 작성 2019-01-18 09:46:50 수정됨
8
676

자바스크립트중인데 오류가 나는 원인을 모르겠습니다.


$(document)ready( function($) {

    demo();

})


function demo() {

  var a = $("#check").data("src");

  var b = a.substring(0, a.lastIndexOf("."));

}


이런식으로 작성했는데

자꾸 jQuery.Deferred exception: a.lastIndexOf is not a function TypeError:  a.lastIndexOf is not a function


이게 뜹니다..ㅜㅜ F12 콘솔에서 찍어보면 문제가 없는데

대체 이게 무슨 문제일까요? 검색해서 따라해봐도 답이 안나오네요 ㅠㅠㅠ

0
  • 답변 8

  • 유리세계
    3k
    2019-01-18 09:43:23

    ("#check").data("src"); -> $("#check").data("src");

    가 아니니까 에러를 lastIndexOf 해서 에러나는게 아닐까요?

  • wkfgkrhtlvek
    458
    2019-01-18 09:46:37 작성 2019-01-18 09:47:01 수정됨

    유리세계 

    앗 제가 여기 코드를 그대로 쓰면서 오타났나봐요~

    원코드는 $ 써줬습니다..ㅠㅠ 수정했어요


  • 유리세계
    3k
    2019-01-18 09:49:53

    어찌되었든 $("#check").data("src"); 의 값이 어떻게 들어오는지가 중요한것 같네요

    console.log($("#check").data("src")) 를 해보세요. 그리고 그 값에 lastIndexOf가 통하는지 보시면 되겠네요


  • wkfgkrhtlvek
    458
    2019-01-18 09:56:24

    유리세계 

    콘솔에 찍어보면 lastIndexOf도 잘 되고 값이 잘 나오네요..ㅠㅠ 참 이상하네요 ㅎㅎㅎ

  • 에르딘트
    2k
    2019-01-18 10:32:32

    나중엔 되는데 화면 처음 렌더링 할 때 오류가 난다면 

    function demo() {

      var a = $("#check").data("src");
      console.log(a);

      var b = a.substring(0, a.lastIndexOf("."));

    }


    이렇게 찍어서 뭐 가져오는지 확인하시고 적절히 소스 수정해 주시면 됩니다.

  • TeraGo
    663
    2019-01-18 10:41:27

    궁금한건데 function demo 에서는 무슨 값을 리턴해주죠..

    <div class="testTxT">테스트.jpg</div>
    
    <script>
    $(function(){
    	console.log(demo());
    });
    </script>
    
    <script>
    var demo = function() {
    	var tata = $('.testTxT').text();
    	var abab = tata.substring(0, tata.lastIndexOf('.'));
    }
    </script>

    똑같이 작성했는데 오류는 안나는데 리턴값이 없으니 demo 에서는 undefined 을 넘겨주네요.

    var demo = function() {
    	var tata = $('.testTxT').text();
    	var abab = tata.substring(0, tata.lastIndexOf('.'));
    
    	return abab;
    }  
  • Keloper245
    1k
    2019-01-18 11:25:18

    jquery를 혹시 두번 로딩하는 곳이 있나 확인해보세요.

  • wkfgkrhtlvek
    458
    2019-01-18 11:49:48
    다들 감사드립니다 하나하나 확인해볼게요!!
  • 로그인을 하시면 답변을 등록할 수 있습니다.