Javascript 如何运行脚本两次
我在同一页上有两个相同的表单,脚本只适用于第一个表单。 我是一个初学者,这对我来说是一个挑战;我尝试添加`for(var I=0;IJavascript 如何运行脚本两次,javascript,Javascript,我在同一页上有两个相同的表单,脚本只适用于第一个表单。 我是一个初学者,这对我来说是一个挑战;我尝试添加`for(var I=0;I{ 常量值=input.value 如果(!值){ el.classList.remove(“可见”); 返回 } 常量修剪=value.trim() 如果(修剪){ el.classList.add(“可见”); }否则{ el.classList.remove(“可见”); } })返回第一个匹配的元素。因此,您需要document.querySelectorA
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')
只会给您一个输入元素。如果您有两个或多个输入,那么侦听器只会附加到第一个输入。“我在同一页上有两个相同的表单”不明白您的意思吗?您多次使用了哪些元素?我尝试添加…
← 你在哪里加的?添加时发生了什么(实际输出)?您预期会发生什么(预期输出)?