Ваша each
функция основана на селекторе для <a>
элементов.
Итак, вы в настоящее время добавляете класс к элементу <a>
, на что ссылается $(this)
.
Кажется, чтоВы хотите добавить его в связанный элемент <li>
.
Я рекомендую jQuery's parent()
.
Получить родительский элемент каждого элемента в текущемнабор согласованных элементов, которые могут быть отфильтрованы по выбору.
var test_url = 'localhost:5583/About.aspx';
$(function() {
var pgurl = test_url.substr(test_url.lastIndexOf("/") + 1);
$("ul li a").each(function() {
if ($(this).attr("href") == pgurl || $(this).attr("href") == '')
$(this).parent().addClass("active");
})
});
.active {
background-color: yellow;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="sidebar-menu" data-widget="tree">
<li class="header">Navigation</li>
<!-- Optionally, you can add icons to the links -->
<li>
<a href="Default.aspx">
<i class="fa fa-home"></i>
<span>Home</span>
</a>
</li>
<li>
<a href="About.aspx">
<i class="fa fa-question"></i>
<span>About</span>
</a>
</li>
<li>
<a href="Contact.aspx">
<i class="fa fa-address-book"></i>
<span>Contact</span>
</a>
</li>
<li class="treeview">
<a href="#"><i class="fa fa-link"></i> <span>Multilevel</span>
<span class="pull-right-container">
<i class="fa fa-angle-left pull-right"></i>
</span>
</a>
<ul class="treeview-menu">
<li><a href="#">Link in level 2</a></li>
<li><a href="#">Link in level 2</a></li>
</ul>
</li>
</ul>
В качестве альтернативы, в основном в качестве демонстрации, вы можете изменить селектор на li
и проверить href
s потомка<a>
элементов.
var test_url = 'localhost:5583/About.aspx';
$(function() {
var pgurl = test_url.substr(test_url.lastIndexOf("/") + 1);
$("ul li").each(function() {
if ($('a', this).attr("href") == pgurl || $('a', this).attr("href") == '')
$(this).addClass("active");
})
});
.active {
background-color: yellow;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="sidebar-menu" data-widget="tree">
<li class="header">Navigation</li>
<!-- Optionally, you can add icons to the links -->
<li>
<a href="Default.aspx">
<i class="fa fa-home"></i>
<span>Home</span>
</a>
</li>
<li>
<a href="About.aspx">
<i class="fa fa-question"></i>
<span>About</span>
</a>
</li>
<li>
<a href="Contact.aspx">
<i class="fa fa-address-book"></i>
<span>Contact</span>
</a>
</li>
<li class="treeview">
<a href="#"><i class="fa fa-link"></i> <span>Multilevel</span>
<span class="pull-right-container">
<i class="fa fa-angle-left pull-right"></i>
</span>
</a>
<ul class="treeview-menu">
<li><a href="#">Link in level 2</a></li>
<li><a href="#">Link in level 2</a></li>
</ul>
</li>
</ul>