Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery findClass并显示这个类是什么?_Jquery - Fatal编程技术网

jQuery findClass并显示这个类是什么?

jQuery findClass并显示这个类是什么?,jquery,Jquery,我试图找到一个类为“active”的元素,然后回显它拥有的其他类,并且只选择字符串的开头 HTML: Javascript(使用jQuery): 因此,基于小提琴 活动元素是:Auto btn jQuery应该将类输出为:cmAuto\u btn a active 然后jQuery应该修改字符串以呈现为cmAuto\u btn 如何执行此操作?您需要使用每个迭代匹配元素集。然后可以在空格上拆分类名,并获取结果数组的第一个元素: $('.cmButtons ul li').each(functi

我试图找到一个类为“active”的元素,然后回显它拥有的其他类,并且只选择字符串的开头

HTML: Javascript(使用jQuery):

因此,基于小提琴

活动元素是:
  • Auto btn
  • jQuery应该将类输出为:
    cmAuto\u btn a active

    然后jQuery应该修改字符串以呈现为
    cmAuto\u btn


    如何执行此操作?

    您需要使用
    每个
    迭代匹配元素集。然后可以在空格上拆分类名,并获取结果数组的第一个元素:

    $('.cmButtons ul li').each(function() {
        if($(this).hasClass("active")) {
           var firstClass = $(this).attr("class").split(" ")[0];
        } 
    });
    
    这是一个例子

    下面是一个备选方案,由于下面的注释(如果有多个元素的类
    处于活动状态,则仍使用
    每个
    ):

    您可能应该使用这个,除非您还需要对没有
    活动
    类的元素执行某些操作,在这种情况下,您可以将上面的示例与
    else
    块一起使用

    $('.cmButtons ul li').each(function(){
        if($(this).hasClass("active"))
           {
           $('#result').html($(this).attr("class"));
           }
    });
    
    工作示例:

    在本部分中“
    ”不是指Li,而是指文档,因为它不在jquery选择器块中,所以当您打印此
    警报(this.location)
    时,您可以在其中获得批准。所以试试这个

    $('.cmButtons ul li').each(function(idx, val) {
        if(val.hasClass("active")) {
           var activeLi = val.attr("class").split(" ")[0];
           $('#result').html(activeLi);
        } 
    });
    

    简单

    var activeClasses = $('.cmButtons ul li.active').attr('class');
    $('#result').html(activeClasses);
    
    演示:


    因此,您可以使用:


    您想将
    LI
    的类从
    cmAuto\u btn a active
    更改为
    cmAuto\u btn
    ,还是只想打印更新示例中没有拆分代码的类。还有,你为什么要做“hasClass”,而不是仅仅让选择器
    .cmButtons ul li.active
    ?@Chris-Oops,谢谢,我已经更新了小提琴的链接。我使用的是
    hasClass
    方法,因为OP就是这么用的。如果
    li
    没有课,也许他们需要做些别的事情?@James:很公平。鉴于OP不知道如何做,尽管我会用最好的方式做,然后让他再问他是否需要其他东西。毕竟,你不想鼓励不良行为。:)@克里斯-是的,非常正确。我已经用你的方法更新了答案。@James:干杯。您现在已获得我的+1。;-)这将获取整个类名,而不是所要求的名称。OP只需要类列表中的第一个类。另请参阅我对James的评论,说明您为什么使用hasClass?我不确定您对
    这个
    不指
    li
    是什么意思。。。在
    每个
    循环中,
    这个
    将引用当前的
    li
    元素。我不是说在循环中,它是关于这个示例:啊,我明白了。抱歉,我以为您指的是在
    每个
    循环中,因为您在示例中没有使用
    这个
    $('.cmButtons ul li').each(function(){
        if($(this).hasClass("active"))
           {
           $('#result').html($(this).attr("class"));
           }
    });
    
    $('.cmButtons ul li').each(function(idx, val) {
        if(val.hasClass("active")) {
           var activeLi = val.attr("class").split(" ")[0];
           $('#result').html(activeLi);
        } 
    });
    
    var activeClasses = $('.cmButtons ul li.active').attr('class');
    $('#result').html(activeClasses);
    
    var active = $('.cmButtons ul li.active');
    var activeClasses = active.attr('class');
    $('#result').html(activeClasses);
    
    active.doSomething();