Javascript Can';不要使用颜色选择器更改多于一个1按钮的颜色

Javascript Can';不要使用颜色选择器更改多于一个1按钮的颜色,javascript,jquery,html,color-picker,jscolor,Javascript,Jquery,Html,Color Picker,Jscolor,我这里有一个代码,它允许我使用颜色选择器从边栏或按钮等元素更改颜色。 数据保存在localstorage上 奇怪的是,这段代码只允许我更改同一物品的颜色。例如在一个有5个按钮的页面上。只有一个按钮改变颜色,其他按钮保持自己的颜色。但是我想把所有的5个按钮都换掉 下面是我用html制作的一个示例,您可以看到3个按钮中的1个只得到一种颜色: /*设置您自己的颜色*/ 颜色; var defaultColor=(localStorage.getItem(“color”))?localStorage.g

我这里有一个代码,它允许我使用颜色选择器从边栏或按钮等元素更改颜色。 数据保存在localstorage上

奇怪的是,这段代码只允许我更改同一物品的颜色。例如在一个有5个按钮的页面上。只有一个按钮改变颜色,其他按钮保持自己的颜色。但是我想把所有的5个按钮都换掉

下面是我用html制作的一个示例,您可以看到3个按钮中的1个只得到一种颜色:

/*设置您自己的颜色*/
颜色;
var defaultColor=(localStorage.getItem(“color”))?localStorage.getItem(“颜色”):“#0078c0”;
window.addEventListener(“加载”,启动,错误);
函数启动(){
jscolor=document.querySelector(“.jscolor”);
如果(jscolor){
jscolor.value=defaultColor;
jscolor.addEventListener(“输入”,updateFirst,false);
jscolor.addEventListener(“更改”,updateAll,false);
jscolor.select();
}
刷新侧边栏(默认颜色);
}
函数updateFirst(事件){
刷新侧栏(event.target.value);
}
函数刷新侧边栏(颜色){
var side=document.querySelector(“.themecolor”);
var text=document.querySelector(“.onlyTextColor”);
var background=document.querySelector(“.background”);
if(侧面、文本、背景){
side.style.backgroundColor=颜色;
text.style.color=颜色;
background.style.backgroundColor=颜色;
}
}
函数updateAll(事件){
$(“.themecolor,.background,”)。每个(函数(){
localStorage.setItem('color',event.target.value);
if($(this).hasClass(“onlyTextColor”))
{
$(this.css('color',event.target.value));
}
否则{
$(this.css('background-color',event.target.value));
}
})
}

整个问题都在您的
updateAll
函数中

通过使用
$(此)
选择器,您就可以了

.each()

类型:函数(整数索引,元素元素

为每个匹配元素执行的函数

因此,您可以修改
updateAll
函数以匹配以下内容

function updateAll(event) {
  // Set color to local storage
  localStorage.setItem('color', event.target.value);
  // Loop through elements with 'themecolor' or 'background' classes
  $(".themecolor, .background").each(function(index, element){     
    // If element needs only text color change
    if($(element).hasClass("onlyTextColor")){
      // Change text color
      $(element).css('color',event.target.value)
    }
    // Else
    else{ 
      // Change background color
      $(element).css('background-color', event.target.value);
    }    
  });
}

你也可以发布相关的html吗?我同意@DanielMemije。如果没有HTML,这个问题很难回答,因为我们不知道您的DOM元素是什么,因此我们不知道我们正在帮助您与什么进行交互,代码列出了id和类,但是css类可以应用于任何东西,id不定义元素/对象对不起,这里是我用html制作的一个例子,你可以看到3个按钮中的1个只有一种颜色:好的,谢谢你让我知道这一点,但是它仍然只改变了1个按钮的颜色,而不是在同一个html中改变了所有按钮的颜色page@akin这对我有用嗯,是的,我看你是对的。然后在我的HTML中有一些我认为是哪里出了问题。每次我只看到第一个有颜色的按钮。所有其他按钮都不符合颜色。我使用了你的代码,并在你的代码笔中看到它确实有效。(Thx btw)但我不明白,我想需要调试。。