I don't understand why I get an error message using the substring method to declare a variable.
I want to use the first part of the URL in a comparison.
Site: http://www.elizabet.nl/wordpress
This is the part that's going wrong:
var currentLocation = document.location, muzLoc = currentLocation.substring(0,45), prodLoc = currentLocation.substring(0,48), techLoc = currentLocation.substring(0,47);
The error: "currentLocation.substring is not a function"
But this part of the code is fine:
var URL = $(this).attr("href").substring(2) + ' #main';
All of the code:
jQuery(function($){ var siteURL = "http://" + top.location.host.toString() + "/wordpress", // Declareren van URL van de website. URL = '', // Declareren van een URL, welke dan ook. currentLocation = '', muzLoc = '', prodLoc = '', techLoc = '', allLinks = $('a[href^=' + siteURL + ']' ), // Declareren van alle menu-links. Het teken ^ betekent 'begint met'. otherLinks = $('a[href^=' + siteURL + "/wp-content" + ']'), siteLinks = $(allLinks).not(otherLinks), mainDiv = $("#content"), hash = window.location.hash, muziekURL = "http://www.elizabet.nl/wordpress/#/muziek_pf/", productieURL = "http://www.elizabet.nl/wordpress/#/productie_pf/", techniekURL = "http://www.elizabet.nl/wordpress/#/techniek_pf/"; if (hash) { hash = "/wordpress" + hash.substring(1); // substring methode haalt karakters van je string af. In dit geval de #, vanwege de offset=1. URL = hash; $(mainDiv).load(URL); } function pageLoad() { var allLinks = $('a[href^=' + siteURL + ']' ), otherLinks = $('a[href^=' + siteURL + "/wp-content" + ']'), siteLinks = $(allLinks).not(otherLinks); siteLinks.each(function() { $(this).attr("href", "#" + this.pathname.substring(10)); }) .click(function() { var URL = $(this).attr("href").substring(2) + ' #main'; $(mainDiv).load(URL, function(){ var currentLocation = document.location, muzLoc = currentLocation.substring(0,45), prodLoc = currentLocation.substring(0,48), techLoc = currentLocation.substring(0,47); if (muzLoc == muziekURL) { $("body").animate({ backgroundColor: "#151C07"}, 500); $(".nieuws").animate({ borderBottomColor: "#99CC33"}, 500); $("#stripe_trans").add("#header").animate({ backgroundColor: "#99CC33"}, 500); $("#tabtekst_3").stop().animate({ backgroundColor: "#B8860B" }, 500); $("#tab_3").add("a.gold").stop().animate({ color: "#B8860B" }, 500); $("#tabtekst_4").stop().animate({ backgroundColor: "#765AAD" }, 500); $("#tab_4").add("a.purple").stop().animate({ color: "#765AAD" }, 500); } else if (prodLoc == productieURL) { $("body").animate({ backgroundColor: "#251B02"}, 500); $(".nieuws").animate({ borderBottomColor: "#FFCC33"}, 500); $("#stripe_trans").add("#header").animate({ backgroundColor: "#FFCC33"}, 500); $("#tabtekst_2").stop().animate({ backgroundColor: "#6B8E23" }, 500); $("#tab_2").add("a.green").stop().animate({ color: "#6B8E23" }, 500); $("#tabtekst_4").stop().animate({ backgroundColor: "#765AAD" }, 500); $("#tab_4").add("a.purple").stop().animate({ color: "#765AAD" }, 500); } else if (techLoc == techniekURL) { $("body").animate({ backgroundColor: "#181223"}, 500); $(".nieuws").animate({ borderBottomColor: "#B39BE4"}, 500); $("#stripe_trans").add("#header").animate({ backgroundColor: "#B39BE4"}, 500); $("#tabtekst_2").stop().animate({ backgroundColor: "#6B8E23" }, 500); $("#tab_2").add("a.green").stop().animate({ color: "#6B8E23" }, 500); $("#tabtekst_3").stop().animate({ backgroundColor: "#B8860B" }, 500); $("#tab_3").add("a.gold").stop().animate({ color: "#B8860B" }, 500); } else { $("body").animate({ backgroundColor: "#202020"}, 500); $(".nieuws").animate({ borderBottomColor: "#FFF"}, 500); $("#stripe_trans").add("#header").animate({ backgroundColor: "#FFF"}, 500); $("#tabtekst_2").stop().animate({ backgroundColor: "#6B8E23" }, 500); $("#tab_2").add("a.green").stop().animate({ color: "#6B8E23" }, 500); $("#tabtekst_3").stop().animate({ backgroundColor: "#B8860B" }, 500); $("#tab_3").add("a.gold").stop().animate({ color: "#B8860B" }, 500); $("#tabtekst_4").stop().animate({ backgroundColor: "#765AAD" }, 500); $("#tab_4").add("a.purple").stop().animate({ color: "#765AAD" }, 500); } pageLoad(); }); }); } pageLoad(); }); // End document ready function.
The difference between substring() and substr()The two parameters of substr() are start and length , while for substring() , they are start and end . substr() 's start index will wrap to the end of the string if it is negative, while substring() will clamp it to 0 .
What is a Substring in Java? Substring in Java is a commonly used method of java. lang. String class that is used to create smaller strings from the bigger one. As strings are immutable in Java, the original string remains as it is, and the method returns a new string.
The substring() method extracts the characters from a string, between two specified indices, and returns the new substring. This method extracts the characters in a string between "start" and "end", not including "end" itself. If "start" is greater than "end", this method will swap the two arguments, meaning str.
The substring() method extracts characters, between two indices (positions), from a string, and returns the substring. The substring() method extracts characters from start to end (exclusive).
document.location
is an object, not a string. It returns (by default) the full path, but it actually holds more info than that.
Shortcut for solution: document.location.toString().substring(2,3);
Or use document.location.href
or window.location.href
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With