0

我快速询问有关 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'));
  };

此代码可以很好地突出元素边框,但是当我将代码更改为指向这样的特定元素时,使用全局变量来表示所选元素它失败了。我不理解“this”变量的使用吗?变量 $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'));
  };

任何帮助将不胜感激。

4

1 回答 1

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'));
};
于 2012-12-08T17:42:33.407 回答