更新感谢@mrtsherman验证我的代码没问题,我深入研究了CSS,发现没有任何理由,ie7想要在底部添加一些额外的填充。这就是我讨厌ie7的原因。
我有一些非常简单的代码会自动将类添加到与当前页面对应的导航项目中。适用于所有浏览器,包括ie8和ie9,但似乎只是在ie7中不起作用。谁破了,ie7还是我?
HTML:
<div id="navbar">
<ul>
<li class="navitem"><a href="about.html">about us</a></li><!--navitems-->
<li class="navitem"><a href="purchase.html">purchase</a></li><!--navitems-->
<li class="navitem"><a href="sales.html">sales</a></li><!--navitems-->
<li class="navitem"><a href="contact.html">contact</a></li><!--navitems-->
</ul>
</div><!--navbar-->
js file
$(function(){
var full_url = document.URL;
var url_array = full_url.split('/')
var $last_segment = url_array[url_array.length-1];
$('#navbar li a').each(function(){
var $href = $(this).attr('href');
if ( ($href == $last_segment) || ($href == '') ) {
$(this).addClass('curr');
} else {
$(this).removeClass('curr');
}
});
});
答案 0 :(得分:1)
我想的越多,我认为问题必须与您的网址分割有关。如果有一个尾部斜杠,那么$last_segment
将是一个空字符串,因此从不匹配。你应该在拆分之前检查并修剪它。
var full_url = "http://www.mysite.com/contacts.html/";
var full_url = "http://www.mysite.com/contacts.html";
//trim trailing slash
if (full_url.charAt(full_url.length - 1) == '/') {
full_url = full_url.substring(0, full_url.length - 1);
}