如何在jquery中存储上一个单击的元素

如何在jquery中存储上一个单击的元素,jquery,Jquery,我有一张有以下几行的桌子 我的Jquery如下 Check = function() { $('tr').click(function(e){ if(e.ctrlKey) { $(this).addClass("coloradd"); } else if(e.shiftKey) { //Code to be written to sel

我有一张有以下几行的桌子

我的Jquery如下

Check = function()
{

    $('tr').click(function(e){
        if(e.ctrlKey)
        {        
            $(this).addClass("coloradd");
        }
        else if(e.shiftKey)
        {
               //Code to be written to select multiples rows. 
        }
        else
        {
            $('tr').removeClass("coloradd");
            $(this).addClass("coloradd");
        }
    });

};
使用上面的jquery,当我按下control键时,我可以选择多行,这些行将在背景色的帮助下显示


但是,当我选择一行并在shift按钮的帮助下单击另一行时,我需要突出显示这两行之间的所有行(应应用CSS)。有什么方法可以做到这一点吗?

您需要找到两行之间的同级,然后循环这些同级以应用该类


您可能需要找到最初单击的子级,并将其作为表中的行数保留在某个位置,然后找到当前单击的行数,然后计算出中间的行。

当您选择第一行时,CSS类将应用于该行。然后按住shift键并选择另一行时,只需查找具有
coloradd
CSS类的行,获取该表在
tr
集合中的位置或索引,获取刚刚单击的行的索引或位置,切分jQuery集合以仅返回之间的行,然后将类添加到其中。

if(e.shiftKey)
if(e.shiftKey)
{
   // check previous selected row
   if( $('tr.coloradd:first').length == 1)
   {
     // okay, now check prev selected index
     var previndex = $('tr').index($('tr.coloradd:first'));

     // compare with current selected index
     var currindex = $('tr').index($(this));

     var startindex = previndex < currindex ? previndex : currindex;
     var stopindex = previndex > currindex ? previndex : currindex;

     $('tr').slice(startindex, stopindex + 1).addClass('coloradd');
   }
   else
   {
     $(this).addClass('coloradd'); // this is 1st selected row
   }
}
{ //检查上一个选定行 if($('tr.coloradd:first')。长度==1) { //好的,现在检查prev selected index var-previndex=$('tr').index($('tr.coloradd:first')); //与当前选定的索引进行比较 var currendex=$('tr')。index($(this)); var startindex=previndexcurrindex?previndex:currindex; $('tr').slice(startindex,stopindex+1).addClass('coloradd'); } 其他的 { $(this).addClass('coloradd');//这是选定的第一行 } }
$('tr').slice(startindex,stopindex+1).addClass(“coloradd”);也可以使用。。非常感谢你的帮助
Check = function()
{

    $('tr').click(function(e){
        if(e.ctrlKey)
        {        
            $(this).addClass("coloradd");
        }
        else if(e.shiftKey)
        {
               //Code to be written to select multiples rows. 
        }
        else
        {
            $('tr').removeClass("coloradd");
            $(this).addClass("coloradd");
        }
    });

};
if(e.shiftKey)
{
   // check previous selected row
   if( $('tr.coloradd:first').length == 1)
   {
     // okay, now check prev selected index
     var previndex = $('tr').index($('tr.coloradd:first'));

     // compare with current selected index
     var currindex = $('tr').index($(this));

     var startindex = previndex < currindex ? previndex : currindex;
     var stopindex = previndex > currindex ? previndex : currindex;

     $('tr').slice(startindex, stopindex + 1).addClass('coloradd');
   }
   else
   {
     $(this).addClass('coloradd'); // this is 1st selected row
   }
}