JQuery $(this)和属性

时间:2012-09-27 20:11:57

标签: jquery

前段时间我设置了以下内容,使用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)的价值。

5 个答案:

答案 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));,然后检查您的控制台以了解有关该值的更多信息:)