仅为td中的一个元素更改类

时间:2014-12-11 08:16:41

标签: jquery

我使用以下功能添加一个类' active'到表中的元素: td可以包含textareas,输入等。 该类只应添加到textarea,input等,而不是整个td。 感谢您的提示

的jQuery

$(function() {
    var table = $('table').on('focusin', 'td', function() {
        $('.table tr td').removeClass('active');
        $(this).addClass('active');
        $('.toolbar').show();
    });
});
$(function() {
    var table = $('table').on('focusout', 'td', function() {
        $('.table tr td').removeClass('active');
        $('.toolbar').hide();

}); });

3 个答案:

答案 0 :(得分:1)

您可以使用jQuery.find

$(this).find(":input").addClass('active');

并删除

$(this).find(".active").removeClass("active");

答案 1 :(得分:1)

您可以使用.find()使用后代遍历,您还必须对removeClass()进行相应的更改

$(function () {
    var table = $('table').on('focusin', 'td', function () {
        $('.table tr td .active').removeClass('active');
        $(this).find(':input').addClass('active');
        $('.toolbar').show();
    });
});
$(function () {
    var table = $('table').on('focusout', 'td', function () {
        $('.table tr td .active').removeClass('active');
        $('.toolbar').hide();
    });
});

答案 2 :(得分:0)

更改行

$(this).addClass('active');

$(this).find(':input')addClass('active');

表示输入字段,另外表示textarea字段

$(this).find(':textarea')addClass('active');