首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >每个div的jQuery长度枚举

每个div的jQuery长度枚举
EN

Stack Overflow用户
提问于 2018-06-09 03:20:21
回答 2查看 232关注 0票数 1

我有7行,每行都有字符,我想在另一组7行中显示它们的计数。\

例如,对于第一个#actual .list项,我希望它在#years .list中显示4个字符,对于第二个#actual .list项,我希望它在#years .list部分中显示2个字符。

$(function() {
  var number = $('#actual .list');
  for (i = 0; i < number.length; i++) {
    $('#years .list').html(number[i].text().length);
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="actual">
  <p class="list">Hello</p>
  <p class="list">Hey</p>
  <p class="list">Hi</p>
  <p class="list">Hello</p>
  <p class="list">Hey</p>
  <p class="list">Hi</p>
  <p class="list">Woo</p>
</div>
<div id="years">
  <p class="list">#:</p>
  <p class="list">#:</p>
  <p class="list">#:</p>
  <p class="list">#:</p>
  <p class="list">#:</p>
  <p class="list">#:</p>
  <p class="list">#:</p>
</div>

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-09 03:28:22

您的问题并不完全清楚,但是您似乎正在尝试用第一组p元素中相关联的p中的文本的长度填充第二组but元素。

在这种情况下,您有几个问题。首先通过索引访问jQuery对象会返回底层元素,因此这里没有text()方法。其次,您设置了循环中所有.list元素的html(),而不是当前迭代中的元素。

要解决此问题并改进逻辑,您可以向text()提供一个函数,该函数将当前元素的索引作为参数,您可以使用该参数与eq()比较第一个和第二个集合中的p元素,如下所示:

$(function() {
  var $list = $('#actual .list');
  $('#years .list').text(function(i) {
    return $list.eq(i).text().length;
  });
});
p { margin: 0; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="actual">
  <p class="list">Hello</p>
  <p class="list">Hey</p>
  <p class="list">Hi</p>
  <p class="list">Hello</p>
  <p class="list">Hey</p>
  <p class="list">Hi</p>
  <p class="list">Woo</p>
</div>
<div id="years">
  <p class="list">#:</p>
  <p class="list">#:</p>
  <p class="list">#:</p>
  <p class="list">#:</p>
  <p class="list">#:</p>
  <p class="list">#:</p>
  <p class="list">#:</p>
</div>

票数 0
EN

Stack Overflow用户

发布于 2018-06-09 03:24:08

您将#years div下具有list类的所有元素都设置为该值,因此每次都会覆盖该值。

假设#actual下的每个元素都有一个#years以下的元素,您可以这样做:

$(function() {
    var number = $('#actual .list');
        for (i = 0; i < number.length; i++) {
            $($('#years .list')[i]).html(number[i].text().length);
                }
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50767182

复制
相关文章

相似问题

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