如何检查带有href="某事“;与Jquery有一定的类

How to check if a div with href="something" has certain class with Jquery

本文关键字:某事 Jquery quot 何检查 检查 href      更新时间:2023-09-26

我想检查一个具有特定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>

我想不断检查正常导航<ul>中哪个元素有类active(我有scrollFire()JQuery插件):

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

如果<a>有源元件是具有href="#chi"href="#dirigenza"等的有源元件,则做一些事情

我该怎么做?

您可以使用$("a.active")将当前a标记为活动。然后,您可以使用$("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语句来替换开关部分。

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

将选择类别为active且其href#chi的所有a

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

将此用于多个hrefs

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

将给出匹配元素的数量。

您可以使用hasClass方法:

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