Javascript Can';t从注入另一个div的div中获取动态十六进制代码属性
我已经为此挣扎了几天了。目前,当用户单击一个按钮时,JavaScript调用API并一次从DB-6中注入某些颜色(十六进制代码),以更改6个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
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);
});