如何仅将类添加到父行而不是全部

发布于 2024-12-29 23:00:18 字数 273 浏览 0 评论 0原文

使用这个功能。但它将 row_selected 类添加到所有行。如何将其添加到父行?

$('.checkbox').click( function() {
    if ( $("#list tr").hasClass('row_selected') )
        $("#list tr").removeClass('row_selected');
    else
        $("#list tr").addClass('row_selected');
} );

Using this function. But it adds row_selected class to all rows. How can I add it, only to parent row?

$('.checkbox').click( function() {
    if ( $("#list tr").hasClass('row_selected') )
        $("#list tr").removeClass('row_selected');
    else
        $("#list tr").addClass('row_selected');
} );

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

影子是时光的心 2025-01-05 23:00:18

您可以使用 .closest() 方法 查找最近的父级(或祖父母/祖先)元素匹配特定的选择器。所以试试这个:

$('.checkbox').click( function() {
   $(this).closest("tr").toggleClass("row_selected");
});

注意 .toggleClass() 方法 负责处理你的 if/else 适合你,但如果你真的想手动编码:

$('.checkbox').click( function() {
    // store the reference to the containing tr in a variable instead of
    // reselecting it
    var $tr = $(this).closest("tr");
    if ($tr.hasClass('row_selected') )
        $tr.removeClass('row_selected');
    else
        $tr.addClass('row_selected');
});

请注意,无论哪种方式,在 jQuery 事件处理程序中 this 都是触发事件的元素,因此你可以操纵它或通过获取找到它的父母/兄弟姐妹/任何东西带有 $(this) 的 jQuery 对象。

You can use the .closest() method to find the nearest parent (or grandparent/ancestor) element matching a particular selector. So try this:

$('.checkbox').click( function() {
   $(this).closest("tr").toggleClass("row_selected");
});

Note that the .toggleClass() method takes care of your if/else for you, but if you really want to code it manually:

$('.checkbox').click( function() {
    // store the reference to the containing tr in a variable instead of
    // reselecting it
    var $tr = $(this).closest("tr");
    if ($tr.hasClass('row_selected') )
        $tr.removeClass('row_selected');
    else
        $tr.addClass('row_selected');
});

Note that either way, in a jQuery event handler this is the element the event was triggered on, so you can manipulate it or find its parents/siblings/whatever by getting a jQuery object with $(this).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文