提前感谢您查看我的问题。我有两个html表,我想从中选择表行并推入数组。表1的ID是#name,表2的id是#name2。这是按住ctrl键并切换行以推入数组的功能。我正在尝试编写函数,所以如果我按住Ctrl键并单击一个表中的一行,它将应用于另一个表中的同一索引的行。
function rowSelect(element){
var self = this;
self = 0;
var isCtrlDown = false;
element.on('click', 'tr', function(){
var tr = $(this);
if(!isCtrlDown)
return;
tr.toggleClass('ui-selected')
})
$(document).on('keydown', function(e){
isCtrlDown = (e.which === 17)
});
$(document).on('keyup', function(e){
isCtrlDown = !(e.which === 17)
});
self.getSelectedRows = function(){
var arr = [];
element.find('.ui-selected').each(function(){
arr.push($(this).find('td').eq(0).text())
})
return arr;
}
return self;
}
window.myElement =rowSelect($('#name'))
window.myElement = rowSelect($('#name2'))
答案 0 :(得分:1)
似乎最简单的方法就是同时在两行上切换该类。只需获取所单击索引的索引,然后按索引选择行并立即切换它们。
element.on('click', 'tr', function(){
var index = $(this).index();
if(!isCtrlDown)
return;
$('tr:nth-child(' + (index + 1) + ')').toggleClass('ui-selected');
})
此解决方案确保始终将两个行切换在一起,然后按类选择元素将同时获取它们或两者都没有。
另外,如果你喜欢:
rowSelect( $('#name, #name2') )
您可以一次将事件附加到两个表格。