2016-07-21 1 views
0

아래 스크립트는 현재 URL을 추출하고 마우스 오버시 이미지 스왑을 수행하는 데 사용됩니다.Uncaught TypeError에 대한 수정 필요 : 정의되지 않은 'substr'속성을 읽을 수 없습니다.

cannot read property 'substr' of undefined

코드는 다음과 같습니다 : 그러나, 나는 현재 Catch되지 않는 유형의 오류를 받고 있어요

<script> 
jQuery(document).ready(function(){ 
    jQuery('.hover_box_wrapper').mouseenter(function(){ 
     var img_src = jQuery(this).parent().parent().parent().find('.hover2 img').attr('src'); 
     var img_src_s= img_src.substring(0,img_src.lastIndexOf("?")); 
     var img_href = jQuery(this).parent().attr('href'); 
     var img_src_set = jQuery(this).parent().parent().parent().find('.hover2 img').attr('srcset'); 
     var src = jQuery('.center123').find('img').attr('src'); 
     var res = src.split(" "); 
     var src_first = res[0]; 
     src_first = src_first.substring(0,src_first.lastIndexOf("?")); 

     jQuery('.center123').find('img').attr('src',img_src_s); 
     jQuery('.center123').find('img').attr('srcset',src_first); 

     //var img_html = jQuery('.center123').find('.vc_single_image-wrapper').html(); 
     //jQuery('.center123').find('.vc_single_image-wrapper').html(''); 
     jQuery('.center123').find('.vc_single_image-wrapper').html('<a href="'+ img_href + '"><img src="'+ img_src_s+'" srcset="'+ src_first +'" /></a>'); 
    }); 
}); 

+0

필요 :

간단한 추가 검사

처럼 코딩 할 수있다. –

+0

안녕하세요, 쉽게 참조 할 수 있도록 여기에 페이지 소스를 저장했습니다 : http://dev.thesuit.sg/lcattertonasia/page-source.html –

+0

@BentoSet, 아래 답변을 찾으십시오. 문제는 매우 간단합니다. 코드에 좀 더주의를 기울여야하고 디버깅 방법을 배워야합니다. – Farside

답변

0
디버그 있을지

하면 오류 코드의이 작품에서, 여기에 숨겨져 라인으로 그것을 행 : 경우에

var src = jQuery('.center123').find('img').attr('src'); 
var res = src.split(" "); 
var src_first = res[0]; 

없는 요소가 있어요 찾을 수 없다면, undefined 값이 src_first 변수에 저장된 것과 동일한 src 속성을 찾을 수 있습니다.

res[0]에 저장되는 결과에 대한 추가 점검이 필요합니다. split(" "){String} 유형에서만 작동하며 undefined에는 적용 할 수 없습니다. 디버그하기 위해 HTML 코드를보고 그것을 해결하기 위해

// ... 
var src = jQuery('.center123').find('img').attr('src'); 
if (! src) { // <== here's the additional check, the simplest case possible 
    return; 
} 
var res = src.split(" "); 
var src_first = res[0]; 
// ... 
+0

안녕하세요, 미안 해요 나는 개발자가 아니며 jquery에 정통하지 않습니다 .... 제 질문을 살펴 주셔서 고마워요. 문제를 해결하기 위해 내가 정확히해야할 일이 무엇인지 알 수 있습니까? 내 개발 사이트에있을 때 사이트가 정상적으로 작동하고있었습니다. http://dev.thesuit.sg/lcattertonasia하지만 실제 서버로 이식 될 때 작동하지 않습니다. –

관련 문제