在.hover效果的子元素中添加类

时间:2011-10-21 10:01:16

标签: jquery

我想在输入字段中添加一个类名,但不知道jquery的所有逻辑 HTML代码是

<tr class="jp_contact"><td>text</td><td>text</td><td>text</td><td><input name="in_val" ></td></tr>
<tr class="jp_contact"><td>text</td><td>text</td><td>text</td><td><input name="in_val" ></td></tr>
<tr class="jp_contact"><td>text</td><td>text</td><td>text</td><td><input name="in_val" ></td></tr>
鳕鱼是:

$('.jp_contact').each(function(e){
        var currentRow = $(this);
        $(this).hover(
            function(){
                    $(this).addClass('jp_hover');
                    $(currentRow + " td:last").removeClass('dis_button');
                },
            function(){
                    $(this).removeClass('jp_hover');
                    $('input[name="in_val"]').addClass('dis_button');
                });
    });

1 个答案:

答案 0 :(得分:2)

你的逻辑是有缺陷的。在悬停时,您从当前行的最后一个单元格中删除dis_button类。在悬停时,您将dis_button类添加到不存在的输入元素。

此外,您不能在字符串上下文中使用jQuery对象。 $(currentRow + " td:last")应为$("td:last", currentRow)$(currentRow).find("td:last")的缩写)。

$('.jp_contact').each(function(e){
    var currentRow = $(this);
    $(this).hover(
        function(){
                $(this).addClass('jp_hover');
                $("td:last", currentRow).removeClass('dis_button');
            },
        function(){
                $(this).removeClass('jp_hover');
                $("td:last", currentRow).addClass('dis_button');
            });
});