如何在jquery中存储上一个单击的元素
我有一张有以下几行的桌子 我的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
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
}
}