Javascript 多个计数器使用相同的类名(querySelectorAll),但输入字段的ID不同
对于这个示例,我希望有2个或更多可重用的增量计数器 每个集装箱将有:Javascript 多个计数器使用相同的类名(querySelectorAll),但输入字段的ID不同,javascript,Javascript,对于这个示例,我希望有2个或更多可重用的增量计数器 每个集装箱将有: 具有相同类名的增量按钮:.increment 具有相同类名.number但ID不同(#speed和#km)的输入字段,用于使用不同的步长和值属性更新其值。这可能与这个.id有关,但我没有看到它 期望: 单击所选事件侦听器(增量按钮)时,它将更新来自该容器的输入值 我使用forEach包装器获取所有增量类名:getIncrements.forEach((getIncrement),但我不知道如何根据单击的按钮选择和更改输
- 具有相同类名的增量按钮:
.increment
- 具有相同类名
但ID不同(.number
和#speed
)的输入字段,用于使用不同的步长和值属性更新其值。这可能与#km
这个.id有关,但我没有看到它
- 单击所选事件侦听器(增量按钮)时,它将更新来自该容器的输入值
getIncrements.forEach((getIncrement)
,但我不知道如何根据单击的按钮选择和更改输入值
const getIncrements=document.querySelectorAll('.increments');
const getValue=document.querySelector('.number');
getIncrements.forEach((getIncrements)=>{
getIncrement.addEventListener('单击',()=>{
getValue.steppup(1);
})
});
Chrome、Safari、Edge、Opera*/
输入::-webkit外部旋转按钮,
输入::-webkit内部旋转按钮{
-webkit外观:无;
保证金:0;
}
/*火狐*/
输入[类型=数字]{
-moz外观:textfield;
}
.flex{
显示器:flex;
边缘顶部:10px;
}
+
+
改用querySelector
,因为在您的情况下,您总是使用第一个输入
const getIncrements=document.queryselectoral(“.increments”);
getIncrements.forEach(getIncrements=>{
getIncrement.addEventListener(“单击”,()=>{
getIncrement.nextElementSibling.Steppup(1);
});
});
Chrome、Safari、Edge、Opera*/
输入::-webkit外部旋转按钮,
输入::-webkit内部旋转按钮{
-webkit外观:无;
保证金:0;
}
/*火狐*/
输入[type=“number”]{
-moz外观:textfield;
}
.flex{
显示器:flex;
边缘顶部:10px;
}
+
+
使用传递给的事件对象,它包含对已单击按钮的引用(Event.target
)。效果很好!如果我添加了另一个按钮,decrement
。也是这样,对吗?为getDecrement添加一个新的事件侦听器并循环它们。在这种情况下,需要查看decrement按钮的位置。很可能您必须查找容器const cont=document.queryselectoral(.flex”);
并使用cont.queryceltor(“.decrement”)分别搜索按钮
我用减量功能编辑了我的OP。我遗漏了什么?我正在循环.flex
容器并用这些容器获取元素。我明白了,添加以声明循环中的所有字段。非常感谢,这是一个非常清楚的解释!