首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用jquery选择特定元素

使用jquery选择特定元素
EN

Stack Overflow用户
提问于 2013-09-25 08:30:08
回答 4查看 121关注 0票数 2

我试图做以下几点。当我用下拉按钮类单击标记时,我想看看该按钮是否有一个排序规则类。如果不是,我将使用jquery添加类。

代码语言:javascript
复制
<div class="user-controls">
    <button class="navbar-toggle navbar-btn collapsed">
        <span class="icon-reorder"></span>
    </button>
    <ul class="nav">
        <li class="hidden-xs"></li>
        <li class="hidden-xs"></li>
        <li class="user-profile">
            <a href="#" class="user-menu dropdown-toggle">Toggle</a>
        </li>
    </ul>
</div>

<script>
    $('a.dropdown-toggle').click(function(){
        var a = $('button.navbar-toggle').hasClass('.collapsed');
        alert(a);
    });
</script>
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-09-25 08:32:08

您没有在.的参数中包含hasClass;该参数只是一个类名,而不是选择器。所以:

代码语言:javascript
复制
$('a.dropdown-toggle').click(function(){
    var a = $('button.navbar-toggle').hasClass('collapsed');
    // No dot ----------------------------------^
    alert(a);
});

但是请注意,addClass不会第二次添加类,所以您可以直接调用它,而不需要首先检查。当然,如果您有其他取决于它是否有类的逻辑,那么您将需要使用hasClass

答:沃尔夫在对这个问题的评论中说:

我想OP想把目标对准相对按钮。导航键切换到点击的锚

如果是这样的话,您可以使用closest到达容器,然后使用find查找容器中的按钮:

代码语言:javascript
复制
$('a.dropdown-toggle').click(function(){
    var a = $(this).closest('.user-controls').find('button.navbar-toggle').hasClass('collapsed');
    alert(a);
});
票数 3
EN

Stack Overflow用户

发布于 2013-09-25 08:33:51

问题是,您正在为hasClass方法使用选择器语法。即。你的代码有.hasClass('.collapsed');而不是.hasClass('collapsed');

票数 1
EN

Stack Overflow用户

发布于 2013-09-25 08:34:26

下面的代码检查元素是否具有“折叠”类。如果它没有这个类,它就会添加它。

代码语言:javascript
复制
$('a.dropdown-toggle').on('click', function(){
  var e = $('button.navbar-toggle');
  if (e.hasClass('collapsed')) {
    alert('The element has the class!');
  }else{
    //This adds the collapsed class to it
    e.addClass('collapsed');
  }
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18999891

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档