如果子td > p
有某个类,我将尝试突出显示表的父tr
。我有以下内容:
$(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
}
});
http://jsfiddle.net/cZJca/1/
现在我的问题是,我不能只针对当前tr。我试过使用$(this),但据我所知,它在if语句中不起作用。
如有任何关于我应该如何进行这项工作的见解,我们将不胜感激。此外,我想使用.click()事件会更容易,但我必须在页面加载时检查这个.hasClass(),而不是用户操作。
只需使用:
$('.flag-wrapper p.selector-on').closest('tr').addClass("marked-row");
这将查找.flag-wrapper
中具有类.selector-on
的所有p
元素。然后,它获得每个匹配中最接近的tr
,并添加.marked-row
类。
它在这里工作:http://jsfiddle.net/cZJca/6/
对每一个循环并分别处理。
$('.flag-wrapper p').each(function(){
var $this = $(this);
var $target = $this.closest("tr");
if($this.hasClass("selector-on")){
$target.addClass("marked-row");
} else {
// whatsoever
}
});
您只需要执行
$('tr:has(.flag-wrapper p.selector-on)').addClass('marked-row');
小提琴
或
$('tr').has('.flag-wrapper p.selector-on').addClass('marked-row');
FIDDLE
您可以在段落上循环以单独针对它们:
$(document).ready(function(){
$('.flag-wrapper p').each(function() {
var $curElement = $(this);
if ($curElement).hasClass("selector-on")) {
$curElement.closest("tr").addClass("marked-row");
} else {
// whatsoever
}
});
});
$('.flag-wrapper p.selector-on').closest('tr').addClass('marked-row');