有没有更好的方法来写这个:
$('.kog td:nth-child(8), .kog th:nth-child(8)').show();
我正在重复类选择器。
你可以使用
$('.kog').find('td,th').filter(':nth-child(8)').show();
您会注意到它并没有更简洁,但它可能更好地显示了您的意图。
您可以缓存变量并在其中找到所需的内容。我个人会使用一个类来设置可见性。
var $kog = $( '.kog' );
$kog.find( 'td:nth-child(8), th:nth-child(8)' ).addClass( 'is-visible' );
那么你会有一个像这样的 CSS 类:
.is-visible { display: block; }
如果规则与您正在进行的其他任何事情发生冲突,您可能必须将规则指定为 !important。
在没有看到您的 HTML 或不知道您的用例的情况下,很难说。
.kod
要返回多个表吗?如果是这样,您可能会展示您可能不打算展示的内容。如果有两个.kod
表,每个表有 6 个 TD,您将在第二个表中显示内容。TH 选择器也是如此。
这似乎是一个相当奇怪的选择器/事情;这是一张只有一个标题和一个正文行的长表吗?如果是这样,那么我猜你在做什么是有道理的,你可以通过这样做避免重复类选择器:
jQuery('.kod').find("td:nth-child(8), th:nth-child(8)").show();
这里的例子:http: //jsfiddle.net/n2dGm/