0
        $(".gl").hover(function() {
    $('select[name="' + $(this).attr('name') + '"]').removeClass("gl").addClass("glHover");//Occurs when hovering over
    }, function(){  
        //Occurs when hover is done
    $('select[name="' + $(this).attr('name') + '"]').removeClass("glHover").addClass("gl");
    });

这是我的代码,基本上当有人将鼠标悬停在任何 gl 类上时,它需要找到名称与它自己的名称匹配的所有元素,但这对我不起作用,而且我对 jquery 还很陌生,所以我不是确定如何解决这个问题

编辑了上面的代码,现在它仍然无法正常工作,这就是为什么我的 html 看起来像(大约):

<table><tr>
<td class='gl' name='07/25'></td>
</td></table>

更新

$('td.gl').hover(function() {
$('select[name="'+ $(this).data('name') +'"]').toggleClass('gl glHover');
});

<td class='gl' data-name='07/18'></td>

还是行不通

4

3 回答 3

1

尝试:

$(".gl").hover(function() 
    $('select[name="' + $(this).attr('name') + '"]').removeClass("gl").addClass("glHover"); 
}, function(){
    $('select[name="' + $(this).attr('name') + '"]').removeClass("glHover").addClass("gl"); 
});

您的元素声明无效,因为您缺少+for 连接,在这种情况下用于替换元素的 name 属性,并且您的引号不正确。我切换到单引号,因为您对 name 属性使用双引号并且语法无效。

更新:您似乎想选择名称与悬停元素名称相对应的任何元素类型。目前使用select[...]查找select元素。我建议您使用具有class对应值的属性name将您的元素链接在一起,然后您可以使用class表示该name属性的 a 引用这些元素。

在这种情况下,请尝试以下操作:

$(".gl").hover(function() 
    $('.' + this.name).removeClass("gl").addClass("glHover"); 
}, function(){
    $('.' + this.name).removeClass("glHover").addClass("gl"); 
});
于 2012-07-25T17:10:12.737 回答
1
 $("select[name='"+$(this).attr('name')+"']") 

应该管用。

于 2012-07-25T17:10:18.507 回答
1

您的代码有字符串连接错误,+最后错过了 a ,您可以使用 获取名称this.name,这比$(this).attr('name').

$(".gl").hover(function() {
    $("select[name="+ this.name + "]").removeClass("gl").addClass("glHover");   
}, function(){
    $("select[name="+ this.name + "]").removeClass("glHover").addClass("gl");
});

或者

$(".gl").hover(function() {
    $("select[name="+ this.name + "]").removeClass("gl").addClass("glHover"); 
});

name不是 的有效属性td

而不是像下面这样name使用:data-name

<table>
    <tr>
        <td class='gl' data-name='07/25'>07/25</td>
        <td class='gl' data-name='07/25'>07/25</td>
    </tr>
</table>

并更改 jQuery 代码:

$('td.gl').hover(function() {
    $('select[name="'+ $(this).data('name') +'"]').toggleClass('gl glHover');
});
于 2012-07-25T17:19:20.920 回答