我需要一个等效于以下代码的Javascript。我正在将一个php网站转换为django网站,在静态页面上我有以下内容:
<li<?if($page == "home") {?> class="active"<?}?>><a href="/home" title="Home">Home</a></li>
问题是我想删除这里的php并使用javascript在该页面上使用class =“active”
答案 0 :(得分:2)
你不需要javascript。您可以动态地将一个类添加到body标签中,如下所示:
<body class="blog">
...并为每个链接添加一个类,如下所示:
<a class="home" href="" >...</a>
<a class="blog" href="" >...</a>
<a class="about" href="" >...</a>
...然后将此规则添加到您的css:
body.blog a.blog, body.home a.home, body.about a.about
{
// Do stuff that you only want applied to the "active" page link
}
基本的想法是,这只会将您的“主动”样式应用于页面上的元素,并且正文标记类与您想要样式化的类的元素之间的正确匹配
答案 1 :(得分:1)
如果您真的需要这样做,可以在jquery http://api.jquery.com/addClass/中使用.addClass()
答案 2 :(得分:1)
在js中获取当前页面,
var currentpage = document.location.href
// this will return the full path e.g. http://www.home/home.html
var homepage = currentpage.search(/home.html/);
if (homepage >-1)...
答案 3 :(得分:0)
没有CSS等价物。 CSS并不那么聪明(还)。你可以在JavaScript中做一些事情但如果你已经可以用服务器端语言来做这件事就太傻了。
注意原始标题要求使用CSS,而不是JavaScript。它已被编辑。
答案 4 :(得分:0)
CSS
是一种用于样式化HTML元素的语言。
PHP
是一种服务器端脚本语言。
与此有很大不同。您无法在CSS
中执行PHP
可以执行的操作,反之亦然。想象一下艺术家和工程师。
JavaScript
是你最亲密的方式。它是一种客户端脚本语言。并在jQuery中做你想做的事情:
$('li').addClass('active');
但当然,您需要发布更多代码。