为什么这样做? window.location.href

时间:2015-05-18 11:23:00

标签: javascript

示例链接:http://localhost/test/page.php?success

我很好奇。而且我也是JavaScript的新手,所以这并不是一个惊喜,但我理解下面的代码,我只是不知道为什么它能解决我似乎理解的问题。见this question for more reference.

我有这个JavaScript:

<script type="text/javascript">
jQuery(function($) {
    var path = window.location.href.split( '?' )[0]; 
    $('ul a').each(function() { 
        if (this.href === path) {
            $(this).addClass('sub-menu active');
            $(this).parent().closest("li").addClass('active');
            $(this).parent().parent().closest("li").addClass('active');
        }
    });
}); 
</script>

补充工具栏:

<li class="sub-menu"> // Sidebar with no submenu
  <a class="" href="page1.php">
    <i class="icon-calendar"></i>
    <span>This is page 1</span>
  </a>
</li>
<li class="sub-menu"> // Sidebar with a submenu
  <a href="javascript:;" class="">
    <i class="icon-group"></i>
    <span>This has sub pages</span>
    <span class="arrow"></span>
  </a>
  <ul class="sub">
    <li><a class="" href="page2.php">This is page 2</a></li>
    <li><a class="" href="page3.php">This is page 3</a></li>
  </ul>
</li>

代码将活动类放到侧栏上的菜单中,其中href等于当前URL。但是window.location.href会返回整个网址,但是href中的内容只是page.php。那么为什么this.href === path有用呢?当window.location.href.split( '?' )[0]返回http://localhost/test/page.php且href只是page.php时。

2 个答案:

答案 0 :(得分:2)

将锚的href属性规范化为绝对值。

请参阅this示例: HTML:

, value = c(578L, 510L, 1707L,  : 
  duplicate 'row.names' are not allowed
In addition: Warning message:
non-unique values when setting 'row.names':

JS:

<a href="test.html">Test</a>

答案 1 :(得分:0)

在此实例中,相对URL正在解析为包含a元素的文档的位置。您可以使用基本元素来控制相对URL的解析。