javascript - 如何根据数据属性值应用背景颜色

标签 javascript jquery

我正在编写下面的代码。为什么我无法根据每个元素的数据属性应用背景颜色?

$(".btn-color").each(function(){
       $(this).css("background-color", $(this).data('bg'));
 });


 $(".btn-color").css("background-color", $(this).data('bg'));
.btn-color{
    height:40px;
    width:40px;
    border-radius:50%;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
   <div class="row">
              <div class="col-sm-1"><button class="btn btn-color" data-bg="D8BFD8"></button></div>
              <div class="col-sm-1"><button class="btn btn-color" data-bg="FF6347"></button></div>
              <div class="col-sm-1"><button class="btn btn-color" data-bg="40E0D0"></button></div>
              <div class="col-sm-1"><button class="btn btn-color" data-bg="EE82EE"></button></div>
              <div class="col-sm-1"><button class="btn btn-color" data-bg="F5DEB3"></button></div>
              <div class="col-sm-1"><button class="btn btn-color" data-bg="FFFFFF"></button></div>
              <div class="col-sm-1"><button class="btn btn-color" data-bg="F5F5F5"></button></div>
              <div class="col-sm-1"><button class="btn btn-color" data-bg="FFFF00"></button></div>
              <div class="col-sm-1"><button class="btn btn-color" data-bg="9ACD32"></button></div>
            </div>

最佳答案

你没有十六进制颜色,你只有一个随机字符串。您需要输入井号 # 才能使颜色生效。

$(".btn-color").each(function(){
       $(this).css("background-color", "#" + $(this).data('bg'));
 });
.btn-color{
    height:40px;
    width:40px;
    border-radius:50%;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
   <div class="row">
              <div class="col-sm-1"><button class="btn btn-color" data-bg="D8BFD8"></button></div>
              <div class="col-sm-1"><button class="btn btn-color" data-bg="FF6347"></button></div>
              <div class="col-sm-1"><button class="btn btn-color" data-bg="40E0D0"></button></div>
              <div class="col-sm-1"><button class="btn btn-color" data-bg="EE82EE"></button></div>
              <div class="col-sm-1"><button class="btn btn-color" data-bg="F5DEB3"></button></div>
              <div class="col-sm-1"><button class="btn btn-color" data-bg="FFFFFF"></button></div>
              <div class="col-sm-1"><button class="btn btn-color" data-bg="F5F5F5"></button></div>
              <div class="col-sm-1"><button class="btn btn-color" data-bg="FFFF00"></button></div>
              <div class="col-sm-1"><button class="btn btn-color" data-bg="9ACD32"></button></div>
            </div>

关于javascript - 如何根据数据属性值应用背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42048437/

相关文章:

javascript - 检查对象键是否为空数组或检查它是否具有自己的属性

javascript - android 的 window.onpopstate?

jquery - 着陆页上的谷歌分析代码和 cookie 法

javascript - 可拖动限制移动

javascript - 附加到不在 DOM 树中的元素

jquery - .data() jquery

javascript - 无法获取 $scope 内设置的值

javascript - 这些变量名代表什么?

javascript - 如何像电子表格一样进行基于网络的 "table"选择? (矩形区域与行环绕选择)

javascript - 动态 jQuery 多选插件