这有效,但它也隐藏了每第二行内每个单元格的顶部边框。如果每个表的第一行被隐藏,我只希望它隐藏顶部边框。否则它不应该隐藏任何东西。
我在这个页面上有 4 个表。
var validate = $("tr:nth-child(1)");
if (validate.is(":hidden")) {
$("tr:nth-child(2) td").css("border-top-width", "0px");
}
这是一个例子:http: //jsfiddle.net/nBAgv/
这有效,但它也隐藏了每第二行内每个单元格的顶部边框。如果每个表的第一行被隐藏,我只希望它隐藏顶部边框。否则它不应该隐藏任何东西。
我在这个页面上有 4 个表。
var validate = $("tr:nth-child(1)");
if (validate.is(":hidden")) {
$("tr:nth-child(2) td").css("border-top-width", "0px");
}
这是一个例子:http: //jsfiddle.net/nBAgv/
尝试
$('table').each(function(){
var validate = $("tr:nth-child(1)", this);
if (validate.is(":hidden")) {
$("tr:nth-child(2) td", this).css("border-top-width", "0px");
}
})
问题是您的倒数第二行为与选择器 tr:nth-child(2) 匹配的所有表行设置了该属性 - 这是每个表的第二行。
因此,您需要一种更具上下文感知能力的方法。我没有测试以下(应该工作),但这个概念是有效的。您需要获取隐藏的第一行父表,然后将您的 .css("border-top-width","0px") 应用于 - 仅 - 该表的第二行。
$("tr:first-child").each(
function(e) {
if($(e).is(":hidden")) {
$(e).parent().children("tr:nth-child(2)").css("border-top","0");
}
});
我想我理解正确。没有把握。对于附加每个隐藏行的下一行,您要从该行中的每个数据单元格中删除顶部边框。
如果是这种情况,请尝试这样做
$('table').each(function() {
$(this).find('tr').each(function() {
validate = $(this);
if (validate.is(":hidden")) {
$(validate).parent().find("tr:eq(1) td").css("border-top", "0px");
}
});
});
为每个表找到行。然后为每一行检查它们是否被隐藏。如果他们找到下一个第一行并删除它的边框。
这是我的小提琴。