【问题标题】:Jquery / Javascript Solution for URL matches Href then add a ClassURL匹配Href的Jquery / Javascript解决方案然后添加一个类
【发布时间】:2016-10-26 01:34:41
【问题描述】:

所以,我有一个基本页面,我需要在其中突出显示我的用户所在的位置。使用 ul > li > a

获得导航

我的想法是获取当前页面的URL,并匹配一个“a”的一个特定href。

结构:

   <header>

<a href="#" id="toggle-nav"><span class="trigger"></span></a>

<nav>
    <ul id="nav-top">
        <li><a href="../Index/Index.html" title="Home">Home</a></li>
        <li><a href="#" title="#">Aluno</a>
            <ul class="sub-menu">
                <li><a href="../Index/areadoaluno.html" title="Area do Aluno">Area Do Aluno</a></li>
                <li><a>sub-item</a></li>
                <li><a>sub-item</a></li>
            </ul>
        </li>
        <li><a href="#">Json</a>
            <ul class="sub-menu">
                <li><a href="Json.html" title="Teste Json">Json Teste</a></li>
                <li><a>sub-item</a></li>
                <li><a>sub-item</a></li>
            </ul>
        </li>
    </ul>
</nav>
</header>

和带有 javascript 的 jquery(可以混合这两个家伙吗?):

var url = window.location.pathname.split( '/' );
var i;
var location = "";

for(i = 0; i < url.length; i++)
    {
        location += url[i];     
    }


    $('#nav-top a').each(function(){

    var href = $(this).attr('href'); 

        if( location.indexOf(href) > -1 ) 

        {
            alert("Yes!");

        } 

    });
});

我正在研究 Jquery 和 jscript,所以我有点新,我正在使用一种解决方案,该解决方案可以找到我的 url 的一部分并将其与特定的 href 匹配,这取决于 url 的大小以及我要去的地方。

【问题讨论】:

  • StackOverflow 上关于“如何标记当前链接”的答案已经有几十个了 - Goog 是你的朋友。
  • 您要匹配哪个href?这将使我们能够重现错误/创建一个 jsfiddle
  • 将是当前页面的“href”,例如 .. im at Home ,因此主页按钮获得“活动”类。因此,他检查 URL 是否有出现在其中一个 a href 上的内容,他得到那个 a 并设置一个活动类。 @RokoC.Buljan -> 已经检查堆栈以获取答案,但没有找到可以帮助我的东西。顺便说一句,我发布的这个解决方案通过了这些答案。

标签: javascript jquery url href


【解决方案1】:

工作jsfiddle

我认为您可以按照所示进行。无需循环遍历url,也无需额外的变量location

var url = window.location.pathname.split('/');

$('#nav-top a').each(function() {
    var href = $(this).attr('href'); 
    if (url.indexOf(href) > -1) {
        alert("Yes!");
    } 
});

是的,混合使用 jQuery 和 JS 是完全可以的。 jQuery 是一个 JS 库,这就是它的用途

【讨论】:

  • 确实适用于小提琴,但在这里它不起作用,我缺少一些东西......我的测试位置在 cpu 上(file:///C:/Users/....) ...这可能与解决方案不起作用有关?
  • 不,没有一个。似乎只是当他匹配 href 和 url 时,他没有返回“相等”,因为我的 else 有效。
  • 我很困惑。您是否尝试匹配:if (url === href)if (url.indexOf(href) &gt; -1)?如果url整体 等于href,则前者的计算结果为真。如果 href 仅在 part /all of url 中,则后者返回 true
  • 对不起,如果 (url.indexOf(href) > -1) .. 我只需要匹配 url 的一部分。
  • 你有一个else 子句并且它输入了吗?如果是这样,请通过将 url 和 href 记录到控制台来检查它们是否符合您的预期
猜你喜欢
  • 2012-09-27
  • 1970-01-01
  • 1970-01-01
  • 2011-11-07
  • 1970-01-01
  • 2016-10-01
  • 2011-05-07
  • 2018-02-23
  • 1970-01-01
相关资源
最近更新 更多