-4

我需要一个等效于以下代码的 Javascript。我正在将 php 网站转换为 django 网站,在静态页面上我有以下内容:

<li<?if($page == "home") {?> class="active"<?}?>><a href="/home" title="Home">Home</a></li>

问题是我想在这里删除 php 并使用 javascript 在该页面上使用 class="active"

4

5 回答 5

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
}

基本思想是,这仅将您的“活动”样式应用于页面上的元素,并且正文标签类与您想要样式化的元素类之间的正确匹配

于 2012-07-12T00:54:47.713 回答
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)...
于 2012-07-12T01:09:08.403 回答
1

如果你真的需要这样做,你可以.addClass()在 jquery http://api.jquery.com/addClass/中使用

于 2012-07-12T00:49:03.350 回答
0

没有等效的 CSS。CSS 还不是那么聪明(还)。你可以用 JavaScript 做一些事情,但如果你已经可以用服务器端语言来做,那将是愚蠢的。

注意原始标题要求使用 CSS,而不是 JavaScript。它已被编辑。

于 2012-07-12T00:38:13.737 回答
0

CSS是一种用于样式化 HTML 元素的语言。

PHP是一种服务器端脚本语言。

这有很大的不同。你不能做CSS可以做的事情PHP,反之亦然。想象一个艺术家和一个工程师。

JavaScript是你最接近的方式。它是一种客户端脚本语言。并在 jQuery 中做你想做的事:

$('li').addClass('active');

但是,当然,您需要发布更多代码。

于 2012-07-12T00:43:12.083 回答