无法使用添加标头活动链接读取 jQuery 中的属性'split'



在jquery中,我无法读取标头活动链接中的属性"split"。我在下面添加了带有片段的代码。请有人帮我解决问题。

这是我的片段:

$(document).ready(function() {
var url = $(location).attr('href');
var parts = url.split("/");
var last_part = parts[parts.length - 1];
$("li").each(function() {
var link = $(this).find("a").attr('href');
var parts = link.split("/");
if (last_part == parts[parts.length - 1]) {
$(this).addClass('active');
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<header id="header">
<nav id="main-menu" class="navbar navbar-default  navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="/index"><img src="/resources/images/logo.png" alt="logo"></img>
</a>
<span class="" style="margin-left:10px;font-weight:bold;text-align:center;margin-top:18px;text-transform:uppercase;cursor:pointer"> </span>
</div>
<div class="collapse navbar-collapse navbar-right">
<ul class="nav navbar-nav" style="text-transform:uppercase; font-size:14px; font-weight:600">
<li class="scroll"><a href="/views/index.jsp">Home</a></li>
<li class="scroll"><a href="/views/features.jsp">Features</a></li>
<li class="scroll"><a href="/views/services.jsp">Services</a></li>
<li class="scroll"><a href="/views/pricing.jsp">Pricing</a></li>
<li class="scroll"><a href="/blog/blog?page=1">Blog</a></li>
<li class="scroll"><a href="/views/contact.jsp">Contact</a></li>
</a>
</li>
</ul>
</div>
</div>
</div>
</nav>
</header>

我仍然不知道可能是什么问题

假设您使用的是jQuery 1.6或更高版本,则问题可能出在

var url = $(location).attr('href');
var parts = url.split("/");

location是具有href属性的对象;它不是 DOM 元素,也没有href属性。来自 jQuery API 文档:

在特定情况下,属性和属性之间的差异可能很重要。在 jQuery 1.6 之前,.attr(( 方法有时在检索某些属性时会考虑属性值,这可能会导致不一致的行为。从jQuery 1.6开始,.prop((方法提供了一种显式检索属性值的方法,而.attr((检索属性。

你可以试试

var parts = location.href.split("/");

或者,如果你真的想坚持使用jQuery,

var parts = $(location).prop("href").split("/");

最新更新