Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Can';t从注入另一个div的div中获取动态十六进制代码属性_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript Can';t从注入另一个div的div中获取动态十六进制代码属性

Javascript Can';t从注入另一个div的div中获取动态十六进制代码属性,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我已经为此挣扎了几天了。目前,当用户单击一个按钮时,JavaScript调用API并一次从DB-6中注入某些颜色(十六进制代码),以更改6个div的背景颜色: function changeColor(id, color, name) { $('#colour-pallete-' + id).css('background', '#' + color); $('#name-colour-palette-' + id).text(name); $('#colour-pall

我已经为此挣扎了几天了。目前,当用户单击一个按钮时,JavaScript调用API并一次从DB-6中注入某些颜色(十六进制代码),以更改6个div的背景颜色:

function changeColor(id, color, name) {
    $('#colour-pallete-' + id).css('background', '#' + color);
    $('#name-colour-palette-' + id).text(name);
    $('#colour-pallete-' + id).attr('color-hex', color); //adds hex attribute
    $('#colour-pallete-' + id).attr('color-name', name); //adds name attribute
}
HTML:


甚至没有在控制台中获得错误消息。通过将上述代码添加到changePallete函数,我可以让控制台显示onclick的十六进制代码,但是当用户单击更改6种颜色时,它会将该十六进制代码乘以用户单击的次数。我仍然无法将其添加为属性。

使用
data colorhex
属性,而不是
color hex

您可以通过以下方式访问
数据colorhex
属性:

$('.something').data('colorhex')
$('.something').attr('data-colorhex')

这是设置附加属性的正确方法

如果要设置,只需执行以下操作:


$('.something').data('colorhex','newValue')
$('.something').attr('data-colorhex','newValue')

终于让它工作了!颜色十六进制属性正在更改,但背景没有更改。然后我想起十六进制必须转换为RGB并更改背景属性:

$('#fav-colour-pallete-' + id).click(function getFav() { 
   var favColor = $('#colour-pallete-' + id).attr('color-hex');
   $('.fav-color').attr('color-hex', favColor)
   $('.fav-color').css('background', '#' + favColor);
});

非常感谢所有人。

你能用一些片段吗?是的,当然,我该怎么做选择jquery作为您的js库,然后让它运行,这样我们就可以了解它的工作原理,然后保存和共享链接here@JohnEhrmantraut我需要添加哪些部分?还有一个api和db?该站点是实时的,链接会更容易吗?现在就尝试一下。“data-”做什么?data-是一个可以保存某种HTML变量的属性。因此,可以使用$(element.data('text')从JS访问数据text='whatever'。你能给我提供你网站的URL吗?这样我就可以看一看了?
 <div class="col-sm-4 favorites">
      <p class="h6 favorites-title mb-0 mt-2">Favorites:</p>
        <ul class="list-inline favorites-list mb-0">
          <div id="fav-colour-select-">
            <li class="list-inline-item fav-color" id="reds"></li>
          </div>
        </ul>
   </div>
 function e (id, color) {
     $('#fav-colour-pallete-' + id).click(function getFav() { //Button
        $('#fav-colour-select' + id).attr('color-hex');
      });
 };
$('#fav-colour-pallete-' + id).click(function getFav() { 
   var favColor = $('#colour-pallete-' + id).attr('color-hex');
   $('.fav-color').attr('color-hex', favColor)
   $('.fav-color').css('background', '#' + favColor);
});