如何检查具有href =“something”的div是否具有Jquery的某个类

时间:2015-12-18 11:05:37

标签: javascript jquery scroll materialize

我想检查具有特定href的div是否也有某个类。我已编码此导航:

<nav>
    <div class="nav-wrapper">
        <ul class="normal-nav hide-on-med-and-down">
            <li><a class="" href="#chi">Chi Siamo</a></li>
            <li><a class="" href="#dirigenza">Dirigenza</a></li>
            <li><a class="" href="#squadre">Squadre</a></li>
            <li><a class="" href="#orariPrezzi">Orari e Prezzi</a></li>
            <li><a class="" href="#modulistica">Modulistica</a></li>
            <li><a class="" href="#contatti">Contattaci</a></li>
            <li><a class="" href="#fotogallery">Fotogallery</a></li>
        </ul>
    </div>
</nav>

相对于用户向下滚动的位置,active元素添加了一个类<a>,以便<a>看起来像这样:

<a class="active" href="#dirigenza">Dirigenza</a>

我想连续检查normal-nav <ul>中哪个元素有active(我的是scrollFire()JQuery插件):

$('body').scrollfire({
    // Offsets
    offset: 0,
    topOffset: 0,
    bottomOffset: 0,
    onScrollAlways: function(elm, distance_scrolled) {
    },
});

如果<a>有效元素是那个href="#chi"href="#dirigenza"等等,那么就做一些事情。

我该怎么做?

3 个答案:

答案 0 :(得分:2)

您可以使用$("a.active")将当前标记为有效的。 然后,您可以使用$("a.active").attr("href")获取该活动元素的href值,并在if或switch语句中使用它来管理不同的情况。

var activeHrefValue = $("a.active").attr("href");
if (activeHrefValue == "theValueToBeChecked") {
   doSomething();
}

在您的特定情况下,我认为这可能是一个很好的解决方案:

$('body').scrollfire({
    // Offsets
    offset: 0,
    topOffset: 0,
    bottomOffset: 0,
    onScrollAlways: function(elm, distance_scrolled) {
        switch($("a.active").attr("href")){
            case "#chi":
                doSomething(elm);
                break;
            case "...":
                doSomethingElse(elm);
                break;
            default: 
                doDefaultSomething(elm);
        }
    },
});

根据您的需要,可以用一系列if-else语句替换该开关部件。

答案 1 :(得分:0)

$("a.active[href='#chi']")

将选择所有 aactive班,其href#chi

$("a.active[href='#chi'], a.active[href='#dirigenza']")

将此项用于多个hrefs

$("a.active[href='#chi']").length 

将给出匹配元素的数量。

答案 2 :(得分:0)

您可以使用hasClass方法:

$('body').scrollfire({
    // Offsets
    offset: 0,
    topOffset: 0,
    bottomOffset: 0,
    onScrollAlways: function(elm, distance_scrolled) {
      if($(elm).hasClass('testingclass')){
         console.log('testingclass');
      }
    },
});