Javascript 突出显示包含行跨和列跨的表的单击事件

Javascript 突出显示包含行跨和列跨的表的单击事件,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有一张这样布置的桌子: +-----------------------------------------------------------+ | | H1 | H2 | H3 | H4 | H5 | | | | | | | | +----------------------------------------

我有一张这样布置的桌子:

+-----------------------------------------------------------+
|         |   H1    |   H2    |   H3    |   H4    |   H5    |
|         |         |         |         |         |         |          
+-----------------------------------------------------------+
|         |    |    |    |    |    |    |    |    |    |    |
+-----------------------------------------------------------+
|         |         |         |         |         |         |
|    S1   |-------------------------------------------------+
|         |         |         |         |         |         |
+-----------------------------------------------------------+
|         |         |         |         |         |         |
|    S2   |-------------------------------------------------+
|         |         |         |         |         |         |
+-----------------------------------------------------------+
|         |         |         |         |         |         |
|    S3   |-------------------------------------------------+
|         |         |         |         |         |         |
+-----------------------------------------------------------+
我想帮助实现一种方法,按下所有“同级”都将突出显示的
S1
2
3
单元格(具有
行span
)中的任何一个,如下所示:

+-----------------------------------------------------------+
|         |XXXXXXXXX|XXXXXXXXX|XXXXXXXXX|XXXXXXXXX|XXXXXXXXX|
|    S3   |-------------------------------------------------+
|         |XXXXXXXXX|XXXXXXXXX|XXXXXXXXX|XXXXXXXXX|XXXXXXXXX|
+-----------------------------------------------------------+
    ^
    |
  CLICKED HERE
如果可能的话,我还想用我的
H1->H5
列来实现这一点

我曾经看过,但对javascript/jquery不太在行,我无法修改它,只能“破坏”它当前的功能

警告:由于表的复杂性,代码段很长

$(文档).ready(函数(){
$('.custTitle')。单击(函数(){
$(this.find('td').css(“背景色”、“红色”);
});
});
.makeInputWidth{
宽度:5em;
}
.rotateText{
-webkit变换:旋转(270度);
-moz变换:旋转(270度);
-o变换:旋转(270度);
变换:旋转(270度);
高度:7公分;
宽度:6em;
}
.头衔{
背景色:#808080;
}
表tr td{
填充:0;
}
表tr{
填充:0;
边界:0;
}
/*qwerty先生{
背景色:透明;
边框:1px实心透明;
}*/

位置
H1
氢
H3
H4
产品
S1
S2
S3
S4
S5
中六
S7
S8
产品id
1.
2.
3.
4.
5.
6.
7.
8.
客户

Q1 这 试验
问题2 这 试验
第三季度 这 试验

检查单击单元格的行跨度,并对属于此表行的每个td以及下一个n(n=rowspan-1)应用css类

$('.td_单击')。单击(函数(){
var rowspan=$(this.attr('rowspan');

对于(i=1;i检查单击单元格的行跨度,并对属于此表行的每个td以及下一个n(n=rowspan-1)应用css类

$('.td_单击')。单击(函数(){
var rowspan=$(this.attr('rowspan');

对于(i=1;i检查单击单元格的行跨度,并对属于此表行的每个td以及下一个n(n=rowspan-1)应用css类

$('.td_单击')。单击(函数(){
var rowspan=$(this.attr('rowspan');

对于(i=1;i检查单击单元格的行跨度,并对属于此表行的每个td以及下一个n(n=rowspan-1)应用css类

$('.td_单击')。单击(函数(){
var rowspan=$(this.attr('rowspan');

对于(i=1;i你可以这样做:

$('#selection td[rowspan]').click(function(e){
    $('td').removeClass('highlight');
    var i = $(this).attr('rowspan');
    var parent = $(this).parent();
    for(;i>0;i--){
        $(parent).find('td').addClass('highlight');
        parent = $(parent).next();
    }
});
当在任何
标记上触发单击事件时。脚本将首先删除任何先前的突出显示,然后读取
行span
属性的值。在这种情况下,它将循环2次(2行,包括当前行),并突出显示所有
标记

在循环中
parent=$(parent).next();
实际设置对下一行的引用

**已更新**

我对脚本进行了一些修改,以包括没有rowspan属性的任何行(单行)

修改:事件触发器更改为
td:first-class
,并添加if条件以检查当前
标记是否具有任何rowspan属性,如果没有,则将
i
的值设置为1。(仅突出显示当前行)


您可以这样做:

$('#selection td[rowspan]').click(function(e){
    $('td').removeClass('highlight');
    var i = $(this).attr('rowspan');
    var parent = $(this).parent();
    for(;i>0;i--){
        $(parent).find('td').addClass('highlight');
        parent = $(parent).next();
    }
});
当在任何
标记上触发单击事件时。脚本将首先删除任何先前的突出显示,然后读取
行span
属性的值。在这种情况下,它将循环2次(2行,包括当前行),并突出显示所有
标记

在循环中
parent=$(parent).next();
实际设置对下一行的引用

**已更新**

我对脚本进行了一些修改,以包括没有rowspan属性的任何行(单行)

修改:事件触发器更改为
td:first-class
,并添加if条件以检查当前
标记是否具有任何rowspan属性,如果没有,则将
i
的值设置为1。(仅突出显示当前行)


您可以这样做:

$('#selection td[rowspan]').click(function(e){
    $('td').removeClass('highlight');
    var i = $(this).attr('rowspan');
    var parent = $(this).parent();
    for(;i>0;i--){
        $(parent).find('td').addClass('highlight');
        parent = $(parent).next();
    }
});
当在任何
标记上触发单击事件时。脚本将首先删除任何先前的突出显示,然后读取
行span
属性的值。在这种情况下,它将循环2次(2行,包括当前行),并突出显示所有
标记

在循环中
parent=$(parent).next();
实际设置对下一行的引用

**已更新**

我对脚本进行了一些修改,以包括没有rowspan属性的任何行(单行)

修改:事件触发器更改为
td:first-class
,并添加if条件以检查当前
标记是否具有任何rowspan属性,如果没有,则将
i
的值设置为1。(仅突出显示当前行)


您可以这样做:

$('#selection td[rowspan]').click(function(e){
    $('td').removeClass('highlight');
    var i = $(this).attr('rowspan');
    var parent = $(this).parent();
    for(;i>0;i--){
        $(parent).find('td').addClass('highlight');
        parent = $(parent).next();
    }
});
在任何
标记上触发单击事件时。脚本将