有没有人能因为我不太擅长javascript而分解(解释)这段代码?
这是一个javascript,我将蓝色改为红色,反之亦然,但有人能逐行解释我的代码吗,因为我不太习惯html和javascript?提前感谢编写此代码的人使用了大量的速记符号。在您精通javascript之前,我不建议您使用任何速记符号。我在下面添加了解释代码的注释。我认为你唯一可能有问题的是foreach,所以请转到下面的链接以了解更多信息有没有人能因为我不太擅长javascript而分解(解释)这段代码?,javascript,html,Javascript,Html,这是一个javascript,我将蓝色改为红色,反之亦然,但有人能逐行解释我的代码吗,因为我不太习惯html和javascript?提前感谢编写此代码的人使用了大量的速记符号。在您精通javascript之前,我不建议您使用任何速记符号。我在下面添加了解释代码的注释。我认为你唯一可能有问题的是foreach,所以请转到下面的链接以了解更多信息 //这定义了一个函数 函数functionl(){ //这将获取一个L1类的所有html标记,并在循环中遍历它们 数组.from(document.g
//这定义了一个函数
函数functionl(){
//这将获取一个L1类的所有html标记,并在循环中遍历它们
数组.from(document.getElementsByClassName('L1')).forEach(函数(e){
//对于类为L1的每个元素,这将调用参数为e的函数helper。现在看第13行。
助理(e);;
});
Array.from(document.getElementsByClassName('L2')).forEach(函数(e){
助理(e);;
});
}
//这定义了helper()函数
功能助手(e){
//下面的代码检查元素中的文本是否为“Hi”
如果(e.innerText=='Hi'){
//如果是,它将进入该语句,并将背景颜色更改为蓝色,将文本更改为hello
e、 style.backgroundColor='蓝色';
e、 innerText='Hello';
}否则{
//如果文本不是“Hi”,则代码进入此语句。如果是,则将背景颜色更改为红色,并将文本更改为“Hi”
e、 style.backgroundColor='红色';
e、 innerText='Hi';
}
}
//此代码每0.5秒(500毫秒)执行一次
设置间隔(函数L,500)代码>
Hi
函数查找具有给定类的每个元素,并为每个此类元素调用一次helper
函数,将找到的元素作为参数传递。(它分别对L1
类和L2
类执行此操作。)
helper函数使用该参数来标识正确的元素,并检查元素中的文本是否为“Hi”。如果是这样,它会将元素的文本切换为“Hello”,并将其颜色切换为蓝色;如果不是,它会将元素的文本切换为“Hi”,并将其颜色切换为红色
这两个函数运行的唯一原因是,最后一条语句要求永远每500毫秒运行一次functionl
。谢谢您的帮助。Helper是一个函数。函数的一般语法是使用function-helper(parameter){code}
定义它,使用它的语法是helper(parameter)
查看此链接了解有关函数的更多信息:感谢您的解释。感谢您的帮助,但我不明白的是foreach是什么以及它如何连接到helperforeach
是每个Array
都知道的函数。(见附件)Array.from(document.getElementsByClassName('L1'))
创建一个html元素数组(具体地说,整个文档中所有以“L1”作为其类的元素)。现在我们有了一个数组,我们可以使用.forEach
循环所有这些元素,并“为每个”元素,做点什么……forEach的工作规则是,我们为每个项所做的“事情”必须是调用另一个函数,该函数可以从我们当前查看的数组中自动了解该项。(我们将逐个查看数组中的每个项。)在.forEach(e=>helper(e))
中,e
可能代表元素(但我们可以使用.forEach(foo=>helper(foo))
并且它的工作原理相同,名称并不重要。)它只是表示“无论我们正在查看什么项目,请将其发送到helper
函数。”现在当helper
运行时,它也将了解当前项目谢谢您的解释
function functionl() {
Array.from(document.getElementsByClassName('L1')).forEach(e => helper(e));
Array.from(document.getElementsByClassName('L2')).forEach(e => helper(e));
}
helper = (e) => {
if (e.innerText == 'Hi') {
e.style.backgroundColor = 'blue';
e.innerText = 'Hello';
} else {
e.style.backgroundColor = 'red';
e.innerText = 'Hi';
}
}
window.setInterval(functionl, 500);