我想找到一种从url中提取要添加到正文中的类的方法。我做了一些尝试,但只设法获得了网址的最后一部分。 你知道我该怎么办吗?
这就是我尝试用jQuery做的
width
这就是我所拥有的:
var dir= window.location.pathname.split('?')[0].split('/').filter(function (i) { return i !== ""}).slice(-1)[0]
jQuery("body").addClass(dir);
这就是我想要的
http://www.test.com/news/hello/
<body class="hello"></body>
http://www.test.com/news/
<body class="news"></body>
答案 0 :(得分:1)
slice
方法返回一个数组,因此您需要做的就是删除[0]
,以便可以拥有所有类。
您还应该将2作为slice
的参数,以便它可以将所有类放在基本URL之后。
var url = " http://www.test.com/news/hello/"
var dir = url
.split('?')[0]
.split('/')
.filter(function (i) { return i !== ""})
.slice(2);
$("div p").addClass(dir);
.news {
color: red;
}
.hello {
font-size: 20px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div>
<p>Hello world</p>
</div>
答案 1 :(得分:0)
您正在使用.slice(-1)[0]
显式获取数组的最后一个元素,尝试一些操作,您可以使用filter方法的结果而无需进行slice
调用。