Javascript颜色小偷在jquery嵌套循环
javascript color thief in jquery nested loop
我有一些动态生成的内容,我需要使用color thief来找到主色。下面是最终的动态输出:
<div class="image_product">
<img style="display:none;" src="image1.jpg">
<img style="display:none;" src="image2.jpg">
</div>
<div class="image_product">
<img style="display:none;" src="image3.jpg">
<img style="display:none;" src="image4.jpg">
</div>
这是我正在尝试的脚本:
var colorThief = new ColorThief();
$('div.image_product').each(function() {
$(this).find('img').each(function() {
var color = colorThief.getColor(this[0]);
console.log(color);
});
});
我已经设法让它在其他领域工作,我知道只有一个图像,与以下代码:
var colorThief = new ColorThief();
$('div.basket_item_image').each(function() {
if($(this).children("img").length > 0)
{
var img = $(this).find('img');
var color = colorThief.getColor(img[0]);
console.log(color);
}
});
我知道你必须添加[0]
时使用它与JQuery,使其正确访问DOM,但我看不出我的中间代码是如何不工作。什么好主意吗?
你不需要this[0]
。在each()
, this
是当前HTML元素被迭代,而不是一个jQuery对象,根据文档:
更重要的是,回调是在当前DOM元素的上下文中触发的,因此关键字this指的是该元素。
因此,只使用this
访问当前元素(当前<img />
),而在each()
内。
var colorThief = new ColorThief();
$('div.image_product').each(function() {
$(this).find('img').each(function() {
var color = colorThief.getColor(this);
console.log(color);
});
});
相关文章:
- Knockout.js中带有if:子句的嵌套循环
- 有没有一种方法可以在所有嵌套循环之后放置一个标签,以便在一步中将它们全部打断
- JavaScript:在嵌套循环中为数组赋值
- Javascript嵌套循环匹配、组合、替换
- 在嵌套循环中处理 AJAX (Angularjs)
- knockout.js中的嵌套循环
- 在二维数组中搜索比嵌套循环更有效的方法
- 用于动态创建对象的嵌套循环
- 根据url自动展开JQuery嵌套菜单
- 在javascript中嵌套循环
- JavaScript中的嵌入循环和嵌套循环之间有区别吗
- 嵌套循环中数组2d中的javascript变量丢失
- jQuery嵌套循环nextUntil选择器
- jQuery JSON嵌套循环
- 优化嵌套循环,使用jQuery创建HTML元素
- jQuery嵌套.each循环超过JSON成功
- Javascript颜色小偷在jquery嵌套循环
- 在Jquery asp.net中迭代嵌套循环
- 使用jQuery eq()嵌套循环
- Javascript/jQuery:嵌套循环,防止覆盖对象属性