我不明白为什么我使用substring方法声明变量时会收到错误消息。
我想在比较中使用网址的第一部分。
网站:http://www.elizabet.nl/wordpress
这是出错的部分:
var currentLocation = document.location,
muzLoc = currentLocation.substring(0,45),
prodLoc = currentLocation.substring(0,48),
techLoc = currentLocation.substring(0,47);
错误: “currentLocation.substring不是函数”
但这部分代码很好:
var URL = $(this).attr("href").substring(2) + ' #main';
所有代码:
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.
答案 0 :(得分:37)
document.location
是一个对象,而不是一个字符串。它返回(默认情况下)完整路径,但它实际上包含的信息多于此。
解决方案的快捷方式:document.location.toString().substring(2,3);
或使用document.location.href
或window.location.href
答案 1 :(得分:3)
你也可以引用字符串
''+document.location+''.substring(2,3);
答案 2 :(得分:1)
TypeError:hex.substring不是函数
<强>解决:强>
你需要做
hex = '0x4a6f7264616e0000000000000000000000000000000000000000000000000000'
//because you probably only coppied the hexcode, you need to copy the quotes too
答案 3 :(得分:0)
您可以使用substr
例如:
new Date().getFullYear().toString().substr(-2)
答案 4 :(得分:0)
在下面尝试此代码:
var currentLocation = document.location;
muzLoc = String(currentLocation).substring(0,45);
prodLoc = String(currentLocation).substring(0,48);
techLoc = String(currentLocation).substring(0,47);