这可以工作,但它也隐藏了每个第二行内每个单元格的顶部边框。我只想隐藏每个表的第一行隐藏顶部边框。否则它不应该隐藏任何东西。
我在这个页面上有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/
答案 0 :(得分:0)
尝试
$('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");
}
})
答案 1 :(得分:0)
问题是你的倒数第二行为与选择器tr:nth-child(2)匹配的所有表行设置了该属性 - 这是每个表的第二行。
因此,您需要一种更具上下文感知的方法。我还没有测试过以下内容(应该可以使用),但这个概念是有效的。您需要获取隐藏的第1行父表,然后将.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");
}
});
答案 2 :(得分: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");
}
});
});
对于每个表,找到行。然后为每一行检查它们是否被隐藏。如果他们找到下一个第一行并删除它的边框。
这是我的fiddle。