jQuery .hasClass,.closest()和$(this)

Adr*_*ian 1 jquery

我正在尝试突出tr表格的父级,如果孩子td > p有某个班级.我有以下内容:

$(document).ready(function(){
    var $target = $('.flag-wrapper p').closest("tr");
    var $element = $('.flag-wrapper p').hasClass("selector-on");

    if ( $element ) {
        $target.addClass("marked-row");
    } else {
        // whatsoever
    }
});
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/cZJca/1/

现在我的问题是我不能只针对当前的tr.我尝试过使用$(this),但据我所知,它在if语句中不起作用.

关于如何进行此操作的任何见解将非常感激.此外,我想使用.click()事件会更容易,但我必须在页面加载而不是用户操作上检查此.hasClass().

Joe*_*Joe 5

只需使用:

 $('.flag-wrapper p.selector-on').closest('tr').addClass("marked-row");
Run Code Online (Sandbox Code Playgroud)

这将查找具有该类的所有p元素.然后它获得每个匹配中最接近的并添加该类..flag-wrapper.selector-ontr.marked-row

这是工作:http://jsfiddle.net/cZJca/6/

  • 你为什么不用'最近的'?如果单元格在嵌套表中,则`parent`是错误的. (2认同)