当我使用这些类似的JS代码(紧接下面的2)时,我的输出错误或不显示。 这是我的问题代码:
if (location.href != "website.com/page1" || "website.com/page2")
{
element.style.backgroundColor='none';
}
或使用!=和!==
if (location.href != "website.com/page1" || location.href != "website.com/page2")
{
element.style.backgroundColor='none';
}
以下是我如何将其与其他代码(简化)一起使用
<script>
var element = document.getElementbyId('idElement');
if (location.href != "website.com/page1")
{
element.style.backgroundColor='blue';
}
if (location.href != "website.com/page2")
{
element.style.backgroundColor='green';
}
//HERE'S WHERE I PUT IT
if (location.href != "website.com/page1" || "website.com/page2")
{
element.style.backgroundColor='none';
}
</script>
要么没有任何反应,要么元素在其他页面上无效。
我做错了什么?
更多信息:我正在制作Tumblr主题,并且有些页面在不同页面上查看时会有一些具有不同特征的帖子。我必须将此代码放在顶部。
有人建议:已解决
<script>
window.onload = function ()
var element = document.getElementbyId('idElement');
if (location.href != "website.com/page1" && location.href != "website.com/page2")
{
element.style.backgroundColor='none';
}
if (location.href == "website.com/page1")
{
element.style.backgroundColor='blue';
}
if (location.href == "website.com/page2")
{
element.style.backgroundColor='green';
}
</script>
答案 0 :(得分:2)
除了明显的语法错误(例如,你在网站http://page2之后留下了一个右引号),你可能还想做一些事情,把它缩小一点。
首先,您可能只想获取location.href一次并将其存储在变量中。当你这样做的时候,你可以在它上面使用toLowerCase(),这样你就可以确定你在比较苹果和苹果:
var currLoc = location.href.toLowerCase();
你的逻辑也有点有趣......首先你说,“如果我们不在第1页,请使用蓝色。如果我们不在第2页,请使用绿色。如果我们不在第1页或string是page2,不使用颜色。“
所以,在这一切的最后,没有颜色出现,因为你说的最后一件事就是如果你不在page1或page2上那么清除颜色?除了语法错误之外,该部分并不十分清楚,可能是问题的一部分。请注意,在评估此行时:
if (location.href != "website.com/page1" || "website.com/page2)
你说“如果location.href不是page1或者如果String(”website.com/page2“)存在”
如果您在两种情况下都在测试location.href,那么您需要:
if (location.href != "website.com/page1" && location.href != "website.com/page2")
因为我假设你的意思。
因此,请尝试将脚本更改为以下内容:
var element = document.getElementbyId('idElement');
var currLoc = location.href.toLowerCase();
// let's save this in a var, too, so you're only changing color once!
var toColor = "none";
if (currLoc != "website.com/page1") {
toColor = 'blue';
}
if (currLoc != "website.com/page2") {
toColor = 'green';
}
//HERE'S WHERE I PUT IT
if (currLoc != "website.com/page1" && currLoc != "website.com/page2") {
toColor = 'none';
}
element.style.backgroundColor = toColor;
答案 1 :(得分:0)
您没有正确关闭if语句。
此:
if (location.href != "website.com/page1" || "website.com/page2)
应该是这样的:
if (location.href != "website.com/page1" || "website.com/page2")
和此:
if (location.href != "website.com/page1" || location.href != "website.com/page2)
应该是这样的:
if (location.href != "website.com/page1" || location.href != "website.com/page2")
如果它仍然不起作用,我建议在你的功能顶部执行此操作。
alert(location.href);
并查看location.href实际上等于什么。
修改强>
现在而不是:
(location.href != "website.com/page1" || "website.com/page2")
它需要看起来像这样:
(location.href != "website.com/page1" || location.href != "website.com/page2")
我们正慢慢到那里来!