Javascript 如何运行脚本两次

Javascript 如何运行脚本两次,javascript,Javascript,我在同一页上有两个相同的表单,脚本只适用于第一个表单。 我是一个初学者,这对我来说是一个挑战;我尝试添加`for(var I=0;I{ 常量值=input.value 如果(!值){ el.classList.remove(“可见”); 返回 } 常量修剪=value.trim() 如果(修剪){ el.classList.add(“可见”); }否则{ el.classList.remove(“可见”); } })返回第一个匹配的元素。因此,您需要document.querySelectorA

我在同一页上有两个相同的表单,脚本只适用于第一个表单。 我是一个初学者,这对我来说是一个挑战;我尝试添加`for(var I=0;I
var el=document.querySelector(“.js tac”);
输入=document.querySelector('.js tel')
input.addEventListener('input',evt=>{
常量值=input.value
如果(!值){
el.classList.remove(“可见”);
返回
}
常量修剪=value.trim()
如果(修剪){
el.classList.add(“可见”);
}否则{
el.classList.remove(“可见”);
}
})
返回第一个匹配的元素。因此,您需要
document.querySelectorAll
,它将提供一个集合。然后像这样迭代该集合

document.querySelectorAll('.js-tel').forEach((input)=>{
  // not using arrow function since using this to target the element
  input.addEventListener('input', function(evt){
     const value = this.value
     // rest of the code
 })

})

问题是您只得到一个输入元素。(
querySelector
返回第一个匹配元素,而不是所有匹配元素)。您可能希望使用
querySelectorAll
获取节点列表(其中将包含所有匹配的节点)。您可以迭代这些

根据您使用它的方式,我建议您确保将您的
js tac
js tel
包装在某个公共父级中,并使用
querySelectorAll
查找这些内容。然后,您可以使用
querySelector
查找
jstel
jstac

var nodes=document.querySelectorAll(“.js parent”)
//如果不导出forEach以使其可用,也可以只执行一个标准
//这里是for循环。
nodes.forEach((父项)=>{
var el=parent.querySelector(“.js tac”);
input=parent.querySelector('.js tel')
...
})

input=document.querySelector('.js tel')
只会给您一个
输入元素。如果您有两个或多个输入,那么侦听器只会附加到第一个输入。“我在同一页上有两个相同的表单”不明白您的意思吗?您多次使用了哪些元素?
我尝试添加…
← 你在哪里加的?添加时发生了什么(实际输出)?您预期会发生什么(预期输出)?