首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在jQuery中获得相同命名的最大类元素长度?

如何在jQuery中获得相同命名的最大类元素长度?
EN

Stack Overflow用户
提问于 2015-08-02 09:12:01
回答 2查看 112关注 0票数 1

我可以很容易地找到与此代码具有相同类名长度的元素,

代码语言:javascript
复制
var classLength = $('.floor-4').length;

但是,如何动态地获得具有相同类名长度的元素?

以下是我的html代码:

代码语言:javascript
复制
<div id="demo">
  <div class="floor floor-1" data-floor="5" data-floor-sub="0">
    <span class="text">Floor 1</span>
  </div>
  <div class="floor floor-2" data-floor="5" data-floor-sub="1">
    <span class="text">Floor 2</span>
  </div>
  <div class="floor floor-3" data-floor="1" data-floor-sub="2">
    <span class="text">Floor 33</span></div>
  <div class="floor floor-3" data-floor="2" data-floor-sub="2">
    <span class="text">Floor 33</span>
  </div>
  <div class="floor floor-3" data-floor="3" data-floor-sub="2">
    <span class="text">Floor 31</span>
  </div>
  <div class="floor floor-3" data-floor="4" data-floor-sub="2">
    <span class="text">Floor 31</span>
  </div>
  <div class="floor floor-3" data-floor="5" data-floor-sub="2">
    <span class="text">Floor 32</span>
  </div>
  <div class="floor floor-3" data-floor="6" data-floor-sub="2">
    <span class="text">Floor 33</span>
  </div>
  <div class="floor floor-3" data-floor="7" data-floor-sub="2">
    <span class="text">Floor 33</span>
  </div>
  <div class="floor floor-3" data-floor="8" data-floor-sub="2">
    <span class="text">Floor 33</span>
  </div>
  <div class="floor floor-3" data-floor="9" data-floor-sub="2">
    <span class="text">Floor 33</span>
  </div>
  <div class="floor floor-4" data-floor="0" data-floor-sub="3">
    <span class="text">Floor 4</span>
  </div>
  <div class="floor floor-4" data-floor="1" data-floor-sub="3">
    <span class="text">Floor 4</span>
  </div>
  <div class="floor floor-4" data-floor="2" data-floor-sub="3">
    <span class="text">Floor 4</span>
  </div>
  <div class="floor floor-4" data-floor="3" data-floor-sub="3">
    <span class="text">Floor 4</span>
  </div>
  <div class="floor floor-4" data-floor="4" data-floor-sub="3">
    <span class="text">Floor 4</span>
  </div>
  <div class="floor floor-4" data-floor="5" data-floor-sub="3">
    <span class="text">Floor 4</span>
  </div>
  <div class="floor floor-4" data-floor="6" data-floor-sub="3">
    <span class="text">Floor 4</span>
  </div>
  <div class="floor floor-4" data-floor="7" data-floor-sub="3">
    <span class="text">Floor 4</span>
  </div>
  <div class="floor floor-4" data-floor="8" data-floor-sub="3">
    <span class="text">Floor 4</span>
  </div>
  <div class="floor floor-4" data-floor="9" data-floor-sub="3">
    <span class="text">Floor 4</span>
  </div>
  <div class="floor floor-4" data-floor="10" data-floor-sub="3">
    <span class="text">Floor 4</span>
  </div>
  <div class="floor floor-5" data-floor="4" data-floor-sub="4">
    <span class="text">Floor 5</span>
  </div>
  <div class="floor floor-5" data-floor="5" data-floor-sub="4">
    <span class="text">Floor 5</span>
  </div>
  <div class="floor floor-5" data-floor="6" data-floor-sub="4">
    <span class="text">Floor 5</span>
  </div>     
</div>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-08-03 09:05:21

像这样,这将返回最常见类的类名,或者如果它们相同(如果有两个类具有相同的最大值),则返回第一个类:

代码语言:javascript
复制
function getMaxFloorClass(){
    var groups = {}, max = 0, maxClass;
    $(".floor").each(function(i, item){
        var classname = $(item).attr('class');
        groups[classname] = groups[classname] || 0;
        groups[classname]++;
    });

    for(group in groups){
        if(groups[group] > max){
            maxClass = group;
            max = groups[group];
        }
    }
    return maxClass;
}

工作实例:

https://jsfiddle.net/kvycjh19/2/

票数 2
EN

Stack Overflow用户

发布于 2015-08-02 09:25:29

您可以使用一个函数对其进行抽象,该函数可以从类名或类选择器(前面的点)返回该类的元素数:

代码语言:javascript
复制
var classCount = function(classString){
    return document.getElementsByClassName(class).length;
};

var countClass = function(classSelector){
    return document.querySelectorAll(classSelector).length;
};

如果您希望使用自定义的jQuery方法,那么:

代码语言:javascript
复制
jQuery.fn.classCount = function(classString){
    return $(classString).length;
};
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31770351

复制
相关文章

相似问题

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