Jquery - 从当前URL获取文本

时间:2009-12-24 10:05:38

标签: jquery

我需要根据用户所在的页面动态更改每个页面的样式。

为此,我计划获取正在访问的页面的URL,删除一些碎片,然后应用然后将rresult应用于<body>标记。这将允许我根据页面的名称进行样式设置。

我看到的网址如下:

http://dan.manfredman.net/site/user/location/home.php
http://dan.manfredman.net/site/user/location/profile.php
http://dan.manfredman.net/site/user/location/users.php

我只需要'home','profile','users',我如何使用JQuery从文件名中删除.php,然后将剩余的'home','profile','users'应用到基于访问页面的body标签?

5 个答案:

答案 0 :(得分:3)

您可能最好在服务器端执行此操作,方法是应用不同的CSS文件,具体取决于您所在的页面。

根据您正在开发的平台 - PHP,Java,ASP.NET等 - 将有不同的方法来实现这一目标。

无论客户端是否启用了javascript,服务器端方法都将起作用。

编辑:我看到你有php文件扩展名,所以我猜你正在为PHP开发 - RTFP,Bob!

答案 1 :(得分:1)

你不需要jQuery,只需使用普通的javascript:

    var url = document.location.href;
    var name = url.substring(
                   url.lastIndexOf("/")+1
               ,   url.lastIndexOf(".")
               );

答案 2 :(得分:0)

$(document).ready(function() {
    var pathname = window.location.pathname;
    var pathname_no_php = pathname.replace(/\.php$/i, "");
    // => http://dan.manfredman.net/site/user/location/users

    var pathname_splitted = pathname_no_php.split("/")._reverse()[0]
    // => 'users'

    $("body").attr("id", pathname_splitted);
});

答案 3 :(得分:0)

为什么没有div并使用jquery更改类,并且css将自动跟随。你可以使用css隐藏一些部分,如果你不想要并显示其他部分。 更改整个页面可能会导致用户注意到菜单较早出现并消失。

答案 4 :(得分:0)

var pathname = document.location.pathname;
var name = pathname.substring(pathname.lastIndexOf("/")+1, pathname.lastIndexOf("."));