javascript - 尝试使用 javascript/jquery 使选择器动态化

标签 javascript html jquery

Hello stackoverflow:我正在尝试使代码的 $('.TextBoxColors-') 部分动态化。
我正在 for 循环中查找 i 变量,以根据 if 分配此值。
我尝试了很多东西,例如 $('.TextBoxColors-${i}')$('.TextBoxColors-').value(i)$('.TextBoxColors-').value(i).css('背景颜色', '绿色'),
但到目前为止还没有任何效果。

这是 javascript/jquery:

let timeArray   = ["9","10", "11", "12", "13", "14", "15", "16", "17"]
let currentTime = parseInt(moment().format("H"));

for (i=0; i< 9; i++) {
  if (currentTime < parseInt(timeArray[i])) {
    $('.TextBoxColors-9').css('background-color', 'gray')
    $('.TextBoxColors-10').css('background-color', 'gray')
    $('.TextBoxColors-11').css('background-color', 'gray')
    $('.TextBoxColors-12').css('background-color', 'gray')
  }
  if (currentTime == timeArray[i]) {
    $('.TextBoxColors-13').css('background-color', 'Tomato')
  }
  
  if (currentTime > timeArray.indexOf("currentTime",currentTime)) {

    $('.TextBoxColors-14').css('background-color', 'green')
    $('.TextBoxColors-15').css('background-color', 'green')
    $('.TextBoxColors-16').css('background-color', 'green')
    $('.TextBoxColors-17').css('background-color', 'green')
  }
}

这是我希望发生这种情况的两个 div:

<!-- 2:00PM-->
<div class="input-group input-group-lg field-size Timer" >
  <div class="input-group-prepend">
      <span class="input-group-text" id="inputGroup-sizing-lg">2 PM</span>
  </div>

  <textarea type="text" class="TextBoxColors-14 form-control" aria-label="2:00 PM"     
    aria-label describedby="inputGroup-sizing-sm"></textarea>
  
  <button class="btn btn-primary" type="button" id="saveToDo-5"><i class="fa fa-floppy-o" style="font-size:18px;"></i>
  </button>
</div>

<!-- 3:00PM-->
<div class="input-group input-group-lg field-size" >
  <div class="input-group-prepend">
    <span class="input-group-text" id="inputGroup-sizing-lg">3 PM</span>
  </div>
  <textarea type="text" class="TextBoxColors-15 form-control" aria-label="3:00 AM"
    aria-describedby="inputGroup-sizing-sm"></textarea>
  
  <button class="btn btn-primary" type="button" id="saveToDo-0">
    <i class="fa fa-floppy-o" style="font-size:18px;"></i>
  </button>
</div>

最佳答案

这很接近:

$('.TextBoxColors-${i}')

但是对于模板字符串文字,您需要使用反引号,而不是单引号:

$(`.TextBoxColors-${i}`)

或者,您可以将值连接到字符串:

$('.TextBoxColors-' + i)

关于javascript - 尝试使用 javascript/jquery 使选择器动态化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66643532/

相关文章:

用于以正斜杠开头后跟字母数字字符且没有空格的字符串的 javascript 正则表达式

html - 网格元素未按预期对齐

html - DIV 重叠在提交订单的顶部 INPUT 按钮在 IE7 中无法正常工作

javascript - 页面 anchor 的 Fancybox 问题

javascript - node.js shell 命令执行

javascript - 当输入给定显式值时,无法读取 null 的属性 'value'

html - Div 内容可见但已禁用

jquery - 如何删除 jQuery 添加的 $.hover 事件?

javascript - 将 json 对象数组 POST 到 IHttpHandler

javascript - 如何将.css和.js与ReactJS + Redux架构集成?