javascript 函数外的变量,已尝试RegEx,但似乎无法使其工作

bz4sfanl  于 2023-09-29  发布在  Java
关注(0)|答案(1)|浏览(76)

我有一个函数,它应该删除类末尾的数字,并将其替换为一个随机数字。但是我必须在函数之前声明一个变量才能让它工作。它只是一个0到9之间的随机数,我正在尝试找到一个方法来实现它,而不需要声明变量
我尝试了这个工作:

let p
  function onRandomize(t = gsap.utils.random(0, 9, 1)) {
    document.querySelector('.home').classList.remove(`home--${p}`);
    p = t;
    document.querySelector('.home').classList.add(`home--${t}`);
  }

我的问题是,我不喜欢在元素外部声明变量,因为在p中,变量只是0到9之间的任何数字。我尝试将p声明为const rg = /[0-9]/并执行'home--' + rg,但它什么也不做。我不认为这很难,但我不能理解它的概念。
谢谢你

xuo3flqw

xuo3flqw1#

当使用模板文字时,${}可以包含js代码,

let home = document.querySelector('.home');
home.classList.add(`home--${gsap.utils.random(0, 9, 1)}`);
//or normal string concatination
home.classList.add("home--"+gsap.utils.random(0, 9, 1));

至于删除随机类名,你需要在classList上循环,直到找到你的类名,然后删除它:

for(let className of home.classList){
   if(className.startsWith('home--')){
      home.classList.remove(className);
      break;
   }
}

相关问题