【问题标题】:Get the number of div with same class获取同一类的div个数
【发布时间】:2016-11-05 20:42:37
【问题描述】:

我正在处理一个实时页面,该页面每秒显示新的非常小的彩色 div。 颜色可以是绿色、橙色或红色。

我想在mouseover 上添加一个工具提示,以显示它包含的 div 的数量。

我会简单地使用这个

$(".myClass").length

但是颜色可以在线显示多次

在这种情况下,我需要知道第一个橙色部分和第二个橙色部分内的 div 数量

例如:

绿色 - 2

橙色 - 4

绿色 - 5

红色 - 4

橙色 - 2

绿色 - 2

AngularJS - 控制器

我正在使用 AngularJS 从 API 中检索这些数据。我收到一个 JSON 字符串数组。

colors : ["0", "2", "3"] //0:red - 2:green - 3:orange

HTML

<div ng-repeat="s in d.colors track by $index" class="status-box" ng-class="{'redStatus' : s == '0', 'greenStatus' : s == '2', 'orangeStatus' : s == '3'}"></div>

有没有办法直接从控制器添加它?我需要一个可以在新数据到达时每秒完成/刷新的快速函数

编辑

我正在使用语义 UI,因此我只需将 data-tooltip="x" 添加到 div 或 span 或其他以显示工具提示。 x应该换成div个数

HTML 生成

<div ng-repeat="c in l.colors track by $index" class="status-box ng-scope greenStatus" data-tooltip="TESTING" ng-class="{'redStatus' : c == '0', 'greenStatus' : c == '2', 'orangeStatus' : c == '3'}"></div>
<div ng-repeat="c in l.colors track by $index" class="status-box ng-scope greenStatus" data-tooltip="TESTING" ng-class="{'redStatus' : c == '0', 'greenStatus' : c == '2', 'orangeStatus' : c == '3'}"></div>
<div ng-repeat="c in l.colors track by $index" class="status-box ng-scope orangeStatus" data-tooltip="TESTING" ng-class="{'redStatus' : c == '0', 'greenStatus' : c == '2', 'orangeStatus' : c == '3'}"></div>
<div ng-repeat="c in l.colors track by $index" class="status-box ng-scope orangeStatus" data-tooltip="TESTING" ng-class="{'redStatus' : c == '0', 'greenStatus' : c == '2', 'orangeStatus' : c == '3'}"></div>
<div ng-repeat="c in l.colors track by $index" class="status-box ng-scope orangeStatus" data-tooltip="TESTING" ng-class="{'redStatus' : c == '0', 'greenStatus' : c == '2', 'orangeStatus' : c == '3'}"></div>
<div ng-repeat="c in l.colors track by $index" class="status-box ng-scope orangeStatus" data-tooltip="TESTING" ng-class="{'redStatus' : c == '0', 'greenStatus' : c == '2', 'orangeStatus' : c == '3'}"></div>
<div ng-repeat="c in l.colors track by $index" class="status-box ng-scope greenStatus" data-tooltip="TESTING" ng-class="{'redStatus' : c == '0', 'greenStatus' : c == '2', 'orangeStatus' : c == '3'}"></div>
<div ng-repeat="c in l.colors track by $index" class="status-box ng-scope greenStatus" data-tooltip="TESTING" ng-class="{'redStatus' : c == '0', 'greenStatus' : c == '2', 'orangeStatus' : c == '3'}"></div>
<div ng-repeat="c in l.colors track by $index" class="status-box ng-scope greenStatus" data-tooltip="TESTING" ng-class="{'redStatus' : c == '0', 'greenStatus' : c == '2', 'orangeStatus' : c == '3'}"></div>
<div ng-repeat="c in l.colors track by $index" class="status-box ng-scope greenStatus" data-tooltip="TESTING" ng-class="{'redStatus' : c == '0', 'greenStatus' : c == '2', 'orangeStatus' : c == '3'}"></div>
<div ng-repeat="c in l.colors track by $index" class="status-box ng-scope greenStatus" data-tooltip="TESTING" ng-class="{'redStatus' : c == '0', 'greenStatus' : c == '2', 'orangeStatus' : c == '3'}"></div>

【问题讨论】:

  • // 获取类 myclass 的元素个数 var count = $('.myclass').length;
  • 正如我所说,这并不能解决我的问题。颜色可以分成不同的部分
  • 需要序列号还是金额?
  • 每种颜色内的 div 数量。第二张图片的示例:绿色:2 - 橙色:5 - 绿色:6 - 红色:5 - 橙色:3 - 绿色:2 -
  • 提供完整的html代码

标签: javascript jquery html css angularjs


【解决方案1】:

这里,你可以尝试使用jQuery

JS

var c = 0;
function countChildsByClass(className) {
    var n = 0,
        array = [];
    n = $('.' + className)[c].children.length;
    array.push(n);
    c++;
    return array;
}
console.log(countChildsByClass('orangeDIV')); //Outputs array [5, 3] = [child in first orangeDIV, child in second orangeDIV]

HTML

<div class="orangeDIV">
    <div class="myDIV"></div>
    <div class="myDIV"></div>
    <div class="myDIV"></div>
    <div class="myDIV"></div>
    <div class="myDIV"></div>
</div>
<div class="orangeDIV">
    <div class="myDIV"></div>
    <div class="myDIV"></div>
    <div class="myDIV"></div>
</div>

使用countChildsByClass('orangeDIV')[0]只能得到orangeDIV的第一个孩子

【讨论】:

  • 我没有测试过,所以分享任何错误。
  • 我的 HTML 不是这样的结构
猜你喜欢
  • 1970-01-01
  • 2013-04-24
  • 2022-07-06
  • 1970-01-01
  • 2018-05-28
  • 2023-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多