函数外的变量,尝试了正则表达式但似乎无法使其工作

问题描述 投票:0回答:1

我有一个函数应该删除类末尾的数字并用随机数字替换它。但我必须在函数之前声明一个变量才能使其工作。它只是 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
但它没有什么都不做。 我认为这并不难,但我无法理解它的概念。

谢谢你

javascript reactjs regex function dom
1个回答
0
投票

使用模板文字时

${}
可以包含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(/home--/.test(className)){
      home.classList.remove(className);
      break;
   }
}
© www.soinside.com 2019 - 2024. All rights reserved.