jquery:基于一个类从一个有多个类的元素中设置变量
我正试图创建一个表,其中的列和行在hover上突出显示。我意识到有jquery插件可以做到这一点,但我正在努力学习,所以我想我自己也可以尝试一下 以下是到目前为止我得到的信息:jquery:基于一个类从一个有多个类的元素中设置变量,jquery,class,variables,Jquery,Class,Variables,我正试图创建一个表,其中的列和行在hover上突出显示。我意识到有jquery插件可以做到这一点,但我正在努力学习,所以我想我自己也可以尝试一下 以下是到目前为止我得到的信息: $('th:not(.features), td:not(.features)').hover(highlight); function highlight(){ $('th.highlightCol, td.highlightCol').removeClass('highlightCol');
$('th:not(.features), td:not(.features)').hover(highlight);
function highlight(){
$('th.highlightCol, td.highlightCol').removeClass('highlightCol');
var col = $(this).attr('class');
$('.' + col).addClass('highlightCol');
};
$('tr').hover(highlightRowOn, highlightRowOff);
function highlightRowOn(){
$(this).children('td:not(.highlightCol)').addClass('highlightRow');
};
function highlightRowOff(){
$(this).children('td:not(.highlightCol)').removeClass('highlightRow');
};
除了一个问题外,这工作正常:
每个“td”都有一个特定于其列package1、package2、package3、package4的类。正是这个函数传递给变量col,以便在其“td”之一悬停时将类“highlightCol”添加到列中
但是,如果将光标沿高亮显示的行移动到新列,则所降落的“td”有两个类highlightedRow和package*。这两个变量都会传递给变量,因此新列不会收到要突出显示的正确类
我是否有办法只针对“package*”类并将其传递给变量,而忽略“highlightedRow”类
我希望这不会太混乱,让人无法理解,非常感谢您提供的任何帮助
有没有一种方法可以让我瞄准
“package*”类并将其传递给
在忽略
“highlightedRow”课程
是的,使用好的老式DOM。既然你在学习,我就不明确给出解决方案
最简单的方法是从jQuery获取HTMLElement:$'.selector'.get0返回第一个匹配的元素。然后使用元素的className属性来获取所需的内容
还有,可能有一些用处。谢谢你的帮助。。。我终于明白了。下面是那些感兴趣的人的代码
$('th:not(.features), td:not(.features)').hover(highlight, remove);
function highlight(){
$(this).removeClass('highlightRow');
var col = $(this).attr('class');
$('.' + col).addClass('highlightCol');
};
function remove (){
$('th.highlightCol, td.highlightCol').removeClass('highlightCol');
$(this).addClass('highlightRow');
};
$('tr').hover(highlightRowOn, highlightRowOff);
function highlightRowOn(){
$(this).children('td:not(.highlightCol), th:not(.highlightCol)').addClass('highlightRow');
};
function highlightRowOff(){
$(this).children('td:not(.highlightCol), th:not(.highlightCol)').removeClass('highlightRow');
};