Javascript 使用querySelectorAll动态更改输入上的值
我有多个颜色输入,总共16个,我使用一个div作为包装来设计样式。包装器div color包装器本质上是我的颜色输入Javascript 使用querySelectorAll动态更改输入上的值,javascript,css,Javascript,Css,我有多个颜色输入,总共16个,我使用一个div作为包装来设计样式。包装器div color包装器本质上是我的颜色输入 <ul class="color-picker__list"> <li> <div class="color-wrapper"> <input id="highlight-background" type="color" value="#F7EBC6">
<ul class="color-picker__list">
<li>
<div class="color-wrapper">
<input id="highlight-background" type="color" value="#F7EBC6">
<label for="highlight-background">Highlight Background</label>
</div>
</li>
<li>
<div class="color-wrapper">
<input id="highlight-accent" type="color" value="#F7D87C">
<label for="highlight-accent">Highlight Accent</label>
</div>
</li>
</ul>
我只在使用querySelector选择单个颜色时成功,但我需要能够动态更改所有16种颜色输入
输入和包装CSS
您可以在封装输入元素的元素上侦听更改事件。在下面的示例中,我使用了一个表单元素来监听
每当用户更改输入上的颜色时,将触发change listener中的函数。然后,它从已使用的输入中获取值,然后使用该值设置.color包装器元素的背景色
通过这种方式,您可以添加任意数量的颜色选择器,而无需修改JS
const form=document.querySelector'.js color form';
form.addEventListener'change',functionevent{
const wrapper=event.target.parentElement;
常量值=event.target.value;
wrapper.style.backgroundColor=值;
};
突出显示背景
突出强调重音
您可以在封装输入元素的元素上侦听更改事件。在下面的示例中,我使用了一个表单元素来监听
每当用户更改输入上的颜色时,将触发change listener中的函数。然后,它从已使用的输入中获取值,然后使用该值设置.color包装器元素的背景色
通过这种方式,您可以添加任意数量的颜色选择器,而无需修改JS
const form=document.querySelector'.js color form';
form.addEventListener'change',functionevent{
const wrapper=event.target.parentElement;
常量值=event.target.value;
wrapper.style.backgroundColor=值;
};
突出显示背景
突出强调重音
这对我来说是个好办法: 获取所有输入元素,循环它们,将更改事件添加到每个元素,并将其颜色设置为其父元素 Javascript:
var inputs = document.querySelectorAll('.color-wrapper input');
inputs.forEach(function(element){
element.addEventListener("change", function () {
element.parentNode.style.background = element.value;
});
})
这对我来说是个好办法: 获取所有输入元素,循环它们,将更改事件添加到每个元素,并将其颜色设置为其父元素 Javascript:
var inputs = document.querySelectorAll('.color-wrapper input');
inputs.forEach(function(element){
element.addEventListener("change", function () {
element.parentNode.style.background = element.value;
});
})
var inputs = document.querySelectorAll('.color-wrapper input');
inputs.forEach(function(element){
element.addEventListener("change", function () {
element.parentNode.style.background = element.value;
});
})