我需要根据用户所在的页面动态更改每个页面的样式。
为此,我计划获取正在访问的页面的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标签?
答案 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("."));