如何搜索与“动态”名称匹配的所有元素

时间:2012-07-25 17:06:16

标签: jquery

        $(".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>

仍然无法正常工作

3 个答案:

答案 0 :(得分:1)

尝试:

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

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

更新:您似乎想要选择名称与hovered元素名称对应的任何元素类型。目前,select[...]的使用情况会查找select元素。我建议您使用带有相应class值的name属性将您的元素链接在一起,然后您可以使用代表class的{​​{1}}引用这些元素属性..

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

name

答案 1 :(得分:1)

 $("select[name='"+$(this).attr('name')+"']") 

应该有用。

答案 2 :(得分:1)

您的代码有字符串连接错误,最后错过了+,您可以使用this.name获取名称,这比[{1}}更快。

$(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

和chage jQuery代码:

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