如果浏览器网址与li
中的href标记相同,我有以下代码来更改li
的类。
我的代码的问题在于它更改了所有li
元素的类,而不仅仅是包含特定网址的元素。
Javascript:
$(document).ready(function() {
$("#subnav a").each(function() {
if ($(this).attr('href') == document.URL) {
$('li').addClass("selected");
}
});
});
HTML :
<div id="subnav">
<ul class="tabrow">
<li><a href="<?php echo $this->config->base_url()?>rankings/all"> Players</a>
</li>
<li><a href="<?php echo $this->config->base_url()?>rankings/top-guilds"> Guilds</a>
</li>
<li><a href="<?php echo $this->config->base_url()?>rankings/top-masterlevel">Master Level</a>
</li>
<li><a href="<?php echo $this->config->base_url()?>rankings/top-voters">Voters</a>
</li>
<li><a href="<?php echo $this->config->base_url()?>rankings/top-online">Online</a>
</li>
</ul>
</div>
解决方案,如果有人需要。感谢 nem035
$(document).ready(function() {
$("#subnav a").each(function() {
if ($(this).attr('href') == document.URL) {
$(this).parent().addClass("selected");
}
});
});
答案 0 :(得分:4)
您的问题是,您使用的选择器$('li')
会选择所有<li>
元素,而不仅仅是当前<a>
的父级,其网址为您正在比较。
这可能是你应该做的:
if($(this).attr('href') == document.URL){
$(this).parent().addClass("selected");
}
答案 1 :(得分:0)
插入你的php:
<?php
$url = $this->config->base_url.'rankings/all';
if($_SERVER['REQUEST_URI'] !== $url) echo(' class="selected" ');
?>