我正在学习jQuery,我正在使用来自http://jsfiddle.net/MUsT8
的Javascript代码在另一个问题中,我问如何将某些内容翻译成jQuery以便能够使用类和用户Pointy解决了我的问题:
var rgb = getAverageRGB($('.first_img')[0]);
$('.post').css("background-color", 'rgb('+rgb.r+','+rgb.g+','+rgb.b+')');
但是这有一个问题,并且它会为所有' post'添加背景颜色。当我只希望它出现在图像所在的父帖子时。我的Html如下所示。
<div class="post">
<div class="circle">
<img class="first_img" id="try" src="./img/train.jpg" height="100%">
</div>
<h2 class="title">
The big Lebowski
</h2>
</div>
我打算让jQuery工作的意图是这样的:
var rgb = getAverageRGB($('.first_img')[0]);
$(this).parent().parent().css("background-color", 'rgb('+rgb.r+','+rgb.g+','+rgb.b+')');
答案 0 :(得分:2)
所以引用元素并以那种方式获取父元素
var img = $('.first_img').eq(0);
var rgb = getAverageRGB(img[0]);
img.parent().parent().css("background-color", 'rgb('+rgb.r+','+rgb.g+','+rgb.b+')');
答案 1 :(得分:2)
如果您希望$(this)
依次引用每个.first_img
,则需要对其进行迭代:
$('.first_img').each(function () {
var rgb = getAverageRGB(this);
$(this).closest('.post').css("background-color", 'rgb('+rgb.r+','+rgb.g+','+rgb.b+')');
});
答案 2 :(得分:1)
使用closest
,它完全符合您的需要。
像:
$(this).closest('.post').css(...)
jQuery doc中的详细信息。