Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

.substring error: "is not a function"

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. 
like image 683
Hannemaatje Avatar asked Nov 12 '10 12:11

Hannemaatje


People also ask

Is substr () and substring () are same?

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 substring in java?

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.

How do I substring in Reactjs?

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.

What is the use of substr () in string?

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


1 Answers

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

like image 130
riffnl Avatar answered Oct 08 '22 03:10

riffnl