需要帮助来了解$ this和用户定义值之间的区别

时间:2012-12-08 17:38:32

标签: jquery class this

我快速质疑jquery变量“this”的值。

我拿了下面显示的一些示例代码......

function blockHighlite()
{
//  alert ('block ' + $gCurrentClass + ' index ' + $gIndex);

        $(this).data('bgcolor', $(this).css('border-color'));
        $(this).css('border-color','rgba(255,128,0,.5)');
        $(this).css('border-color', $(this).data('bgcolor'));
  };

这段代码可以很好地高亮显示元素边框,但是当我将代码转移到指向这样的特定元素时,使用全局变量来表示所选元素就会失败。 我不理解“这个”变量的用法吗?变量$ gCurrentClass和$ gIndex只是我所选元素的类和索引。

function blockHighlite()
{
    alert ('block ' + $gCurrentClass + ' index ' + $gIndex);
        $gCurrentClass.eq[$gIndex].data('bgcolor', $gCurrentClass.eq[$gIndex].css('border-color'));
        $gCurrentClass.eq[$gIndex].css('border-color','rgba(255,128,0,.5)');
        $gCurrentclass.eq[$gIndex].css('border-color', $gCurrentClass.eq[$gIndex].data('bgcolor'));
  };

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

假设$gCurrentClass包含表示类名的字符串,则需要将其作为查询选择器传递给jQuery构造函数($)。请尝试以下方法:

function blockHighlite()
{
    alert ('block ' + $gCurrentClass + ' index ' + $gIndex);
    $('.'+$gCurrentClass).eq($gIndex).data('bgcolor', $('.'+$gCurrentClass).eq($gIndex).css('border-color'));
    $('.'+$gCurrentClass).eq($gIndex).css('border-color','rgba(255,128,0,.5)');
    $('.'+$gCurrentclass).eq($gIndex).css('border-color', $('.'+$gCurrentClass).eq($gIndex).data('bgcolor'));
};