Jquery 突出显示具有特定ID的多行';s

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 程序

正在寻找在悬停特定ID的情况下突出显示表中的
元素的解决方案

我的代码

$('#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很抱歉我没有注意到这一点,但是我找到了一个修复程序,并对其进行了更新,希望这能有所帮助