[英]jQuery add class based on page URL
我有一个我认为很简单的问题,但我无法让它为我的生活工作。
我想要做的就是向页面添加一些 javascript,根据 URL 向主页容器添加一个类。
假设我在 root.com 上有一个站点和以下 html 结构(粗略地说):
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
</head>
<body>
<div id="main" class="wrapper">
Blah, blah, blah
</body>
</html>
我想要做的是一个脚本,如果页面 =(例如)root.com/technology,它会向主 div 添加一个类。 所以 div 现在看起来像:
<div id="main" class="wrapper tech">
我已经加载了 jquery,所以我想这样做。
您可以使用window.location
获取当前 URL,然后基于该 URL 进行切换:
$(function() {
var loc = window.location.href; // returns the full URL
if(/technology/.test(loc)) {
$('#main').addClass('tech');
}
});
这使用正则表达式来查看 URL 是否包含特定短语(特别是: technology
),如果是,则向#main
元素添加一个类。
好吧,这是我将如何做到的:
switch (window.location.pathname) {
case '/technology':
$('#main').addClass('tech');
break;
case '/something':
// code block
break;
case '/somestuff':
$('#main').addClass('some');
break;
default:
// code block
}
这样,您可以保持代码整洁,并且可以轻松添加另一个案例。
在这里查看window.location.pathname
含义。
像下面这样的东西会有帮助吗? 基于其他答案,只是通过做
控制台日志(窗口。位置)
,您可以获取与您的位置对象相关的丰富信息
if(window.location.href=== "root.com/technology") {
$("#main").addClass("tech");
}
使用location内置对象来确定完整的 URL 或它的某些部分。
$(function(){
var cUrl = window.location.href;
$(".product-type-swatches__list a").each(function(){
if ($(this).attr("href") == cUrl){
$(this).addClass("is-selected");
}
});
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.