【发布时间】:2017-02-15 15:04:59
【问题描述】:
这似乎是一个常见问题,但我还没有找到解决方案。我想在我的菜单中突出显示当前页面。 Javascript 和 CSS 似乎是最好的选择,但我无法让它适用于包含 PHP 查询的页面。
HTML
<ul class="topnav" id="myTopnav">
<li><a href="about.php">About / Contact</a></li>
<li><a href="portfolios.php?page=travel-nature">Travel & Nature</a></li>
<li><a href="portfolios.php?page=video">Video</a></li>
<li><a href="portfolios.php?page=editorial">Editorial</a></li>
<li><a href="portfolios.php?page=corporate">Corporate</a></li>
</ul>
Javascript
<script>
$(function(){
$("a").each(function() {
if ($(this).prop("href") === window.location) {
$(this).addClass("current");
}
});
});
</script>
它适用于“about.php”,但不适用于任何“portfolios.php”页面。
我也加了
<script>
document.write(window.location);
</script>
到几页,它返回包括 PHP 查询的完整路径,所以我知道 window.location 有效。
我知道这里可能已经有答案了,但我找不到!
已解决
缺少的东西,如果你知道你在做什么,这很明显,但对我来说,<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 在portions.php 页面的末尾,它出现在about.php 页面上。
【问题讨论】:
-
Window.location实际上是一个Location对象,因此您可以将其用作一个对象。您正在做的事情是因为Location.toString()将返回完整的 URL。 -
尝试与
window.location.href比较 -
如果我遗漏了一些明显的东西(我很可能),请原谅我 - 我在该链接中看不到解决方案,尽管它似乎确实是同样的问题。另外,
window.location和window.location.href都返回完整的 URL,所以我认为这不是问题所在。脚本放置在页面的什么位置是否重要?上面的 HTML 和脚本位于名为 header.php 的文件中,该文件包含在 about.php 和portions.php 中。我不知道这是否有什么不同?
标签: javascript php css