前段时间我设置了以下内容,使用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)的价值。
答案 0 :(得分:3)
$(this)是您正在谈论的当前语境。
所以 img ,即悬停它的当前图像..
尝试使用console.log($(this))仔细检查
答案 1 :(得分:2)
jQuery中的(this)不仅仅是一种自我指涉吗?基本上是什么意思,“当前选择或关注的是什么?” (抱歉 - 不知道如何评论,或者我会这样做。)
查看您的代码,看起来它只是用前缀路径“thumb /".
替换当前图像的源代码。答案 2 :(得分:1)
$(this)
指的是正在悬停的img标记。
答案 3 :(得分:1)
正如一点注意,$(this)确实是当前引用的元素,但它是该元素的jQuery包装器,一个可以访问所有jQuery方法的包装器。 你也有'this',它指的是实际的DOM元素。
实施例: 选择图像$('img');
$(this)是$('img')
这是<img src="example/" alt="example">
你需要使用$(this)和jQuery的方法以及'this'(忽略单引号)来获取html元素。
我希望有所帮助。要知道,在JS / jQuery中,理解这一点是至关重要的,否则,在JS世界中挖掘更多东西是非常不可能的。
答案 4 :(得分:0)
您可以添加console.log('this', $(this));
,然后检查您的控制台以了解有关该值的更多信息:)