【问题标题】:JS loop and maintain index of parameters that meet conditionJS循环并维护满足条件的参数索引
【发布时间】:2021-06-28 07:43:41
【问题描述】:

我有一堆div,我正在通过getElementsByClassName 选择,我们称之为:

let myDivs = document.getElementsByClassName('small-divs');

我需要有条件地将innerText 设置为myDivs,具体取决于myDivs 中的每个<div> 是否为style.visibility != 'hidden'

所以我使用for 循环进行循环,并且在循环内我有条件检查可见性:

for(let i=0; i < myDivs.length; i++){
  if(myDiv[i].style.visibility != 'hidden'){
    myDiv[i].innerText = letter + i; // letter is a user defined array of letters to use for 'rows'
  }
}

这是正常工作,但我的问题是我需要 letter + i 中的 i 从 1 开始,而不是从满足条件的元素索引开始。这是我所拥有的图片:

这是在隐藏任何 div 之前:

这是我在隐藏一些 div 并运行上面的代码后得到的。请注意,内部文本从满足条件的索引开始。例如我需要“K行”从K1开始

我怎样才能做到这一点?似乎是我应该做的一小步,我错过了

【问题讨论】:

    标签: javascript arrays loops for-loop


    【解决方案1】:

    你的意思是这样的吗?使用仅在找到非隐藏 div 时递增的计数器

    let number = 1;
    for(let i=0; i < myDivs.length; i++){
      if(myDiv[i].style.visibility != 'hidden'){
        myDiv[i].innerText = letter + number; // letter is a user defined array of letters to use for 'rows'
        number += 1;
      }
    }
    

    【讨论】:

    • 谢谢。这行得通。我绝对知道我错过了一些小东西。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-27
    • 1970-01-01
    • 1970-01-01
    • 2021-07-17
    • 1970-01-01
    • 2021-12-24
    • 1970-01-01
    相关资源
    最近更新 更多