0

不久前,我设置了以下内容,以便使用 jQuery 进行非常简单的图像交换。但是,现在该站点需要扩展,我无法确定 $(this) 选择器的实际值。我以为会是 $('.gallery li img') 但似乎并非如此。自从我查看这段代码以来已经有一段时间了,我完全迷失了。

$('.gallery li img').hover(function() {
    var $gallery = $('.gallery li img').parents('.gallery');
    var cur_img = $(this).attr('src').replace('thumb/', '');
    $('.main-img', $gallery).attr('src', cur_img);
});​

我不需要更好的方法来建立画廊,我的作品很好(尽管评论一如既往地受到赞赏)我只需要在给定的情况下弄清楚 $(this) 的价值。

4

5 回答 5

3

$(this)是您正在谈论的当前上下文。

所以img即,它悬停在其上的当前图像..

尝试 console.log( $(this)) 仔细检查它

于 2012-09-27T20:14:44.117 回答
2

jQuery 中的 (this) 不只是一个自我引用吗?基本上,意思是“当前选择或关注什么?” (对不起 - 不知道如何评论,否则我会这样做。)

查看您的代码,它看起来只是用前缀路径“thumb/”替换当前图像的源。

于 2012-09-27T20:15:49.603 回答
1

顺便说一句,$(this) 确实是当前引用的元素,但它是该元素的 jQuery 包装器,一个可以访问所有 jQuery 方法的包装器。您还有“this”,它指的是实际的 DOM 元素。

示例:选择图像时 $('img');

$(this) 是 $('img')

这是<img src="example/" alt="example">

您需要 $(this) 将其与 jQuery 的方法和 'this' (忽略单引号)一起使用以按原样获取 html 元素。

我希望这会有所帮助。要知道,在 JS/jQuery 中,理解这一点至关重要,否则,几乎不可能深入挖掘 JS 世界。

于 2012-09-27T20:51:32.913 回答
1

$(this)在此代码中指的是悬停在上面的 img 标签。

于 2012-09-27T20:14:27.987 回答
0

您可以添加console.log('this', $(this));,然后检查您的控制台以了解有关该值的更多信息:)

于 2012-09-27T20:14:28.380 回答