Jquery 突出显示具有特定ID的多行';s
正在寻找在悬停特定ID的情况下突出显示表中的Jquery 突出显示具有特定ID的多行';s,jquery,html,highlight,Jquery,Html,Highlight,正在寻找在悬停特定ID的情况下突出显示表中的元素的解决方案 我的代码 $('#orderstable')。悬停(函数() { $('id_1')。查找('td')。添加类('hover'); },函数() { $('id_1')。find('td')。removeClass('hover'); }); #orderstable td { 填充:0.7em; 边框:#969696 1px实心; } 悬停 { 背景:黄色; } 过程 第一步 步骤2 步骤3 过程1 工作2 工作1 工作3 程序
元素的解决方案
我的代码
$('#orderstable')。悬停(函数()
{
$('id_1')。查找('td')。添加类('hover');
},函数()
{
$('id_1')。find('td')。removeClass('hover');
});代码>
#orderstable td
{
填充:0.7em;
边框:#969696 1px实心;
}
悬停
{
背景:黄色;
}
过程
第一步
步骤2
步骤3
过程1
工作2
工作1
工作3
程序2
工作3
工作4
工作1
我建议改为使用类,但是要回答您的问题,您可以通过使用第n个子css pseudo来实现这一点
我在这里创建了一个快速JSFIDLE作为示例。
-更新工作
#order_1:nth-child(1n+1)
// Start at 1 and increment by 1 finding all divs with ID
$('#order_1:nth-child(1n+1)').hover(function(){
$('#order_1:nth-child(1n+1)').toggleClass('toggled')
});
// Applies class to all divs with specified ID when hovered
ID必须是唯一的。你应该使用类。例如,class=“order1”
和$('.order1').addClass(…)
。另外,你的JS也太离谱了,因为你选择的是不存在的项目,目标是那些选择器中的td
s,而不是tds本身。为了实现你的目标,我会这样做:
$('#orderstable').on('mouseover', 'td', function() {
var elemClass = this.className
.split(' ') // Gets array of classes
.filter(function(item) {
return item.match(/order_\d/) || false;
}) // Filter down to classes matching 'order_[NUMBER]'
.pop(); // Get the class. (Actually gets the last item in an array that contains only one item, so same thing.)
$('.' + elemClass).addClass('hover');
}).mouseout(function() {
$(this).find('td').removeClass('hover');
});
实际上,您还可以为每个类执行以下操作:
$('.order_1').hover(function() {
$('.order_1').toggleClass('hover');
});
但我决定“自动化”这一点。Id必须是唯一的。。。。使用类名代替标题相同id的项目之间是否存在任何奇点??也许为了避免使用无用的类名,请检查我更新的提琴,我在上一个上有一个错误。只有当你将鼠标悬停在各自ID的第一项上时,这才有效。嗨,太好了,刚刚用类替换了ID,这就是我正在寻找的@QuangdaoNguyen很抱歉我没有注意到这一点,但是我找到了一个修复程序,并对其进行了更新,希望这能有所帮助