2016-07-21 16 views
0

Das folgende Skript wird derzeit verwendet, um URL zu extrahieren und einen Bildaustausch bei mouseover durchzuführen. Allerdings bin ich zur Zeit nicht abgefangene Art Fehler bekommen:Fix benötigt in Bezug auf Uncaught TypeError: Kann die Eigenschaft 'substr' von undefined nicht lesen

cannot read property 'substr' of undefined

Der Code ist:

<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

müssen sehen, Ihren HTML-Code, um zu debuggen und beheben:

Die einfachste zusätzliche Prüfung kann wie codiert werden. –

+0

hi, ich habe die Seite Quelle hier für Ihre einfache Referenz gespeichert: http://dev.thesuit.sg/lcattertonasia/page-source.html –

+0

@BentoSet, finden Sie bitte die Antwort unten, Ihr Problem ist ziemlich einfach, Sie müssen nur aufmerksamer auf Ihren Code achten und lernen, wie Sie ihn debuggen können. – Farside

Antwort

0

Sie Fehler wird hier versteckt, in diesem Stück Code, wenn du debug Zeile für Zeile:

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

im Fall gibt es kein Element s gefunden, Sie erhalten keine src Attribute gefunden, was undefined Wert in src_first Variable gespeichert entspricht.

Sie müssen eine zusätzliche Überprüfung des Ergebnisses einführen, das in res[0] gespeichert ist. split(" ") funktioniert nur auf Typ {String}, es kann nicht auf undefined angewendet werden.

// ... 
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

Hallo, tut mir leid, ich bin kein Entwickler und bin nicht in jQuery versiert .... danke für einen Blick auf meine Frage. Kann ich wissen, was genau ich tun muss, um das Problem zu beheben? die Website funktionierte gut, als es auf meiner Entwicklungssite war; http://dev.thesuit.sg/lcattertonasia, aber es funktioniert jetzt nicht, wenn es auf den tatsächlichen Server portiert wird –