从两个不同的表中选择相同索引处的行

时间:2014-07-24 18:31:41

标签: javascript jquery html css html5

提前感谢您查看我的问题。我有两个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'))

1 个答案:

答案 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') )

您可以一次将事件附加到两个表格。