jQuery根据具有单独类的页面URL添加类

时间:2019-03-22 13:58:18

标签: jquery html css

我想找到一种从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>

2 个答案:

答案 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调用。