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