1

有没有更好的方法来写这个:

$('.kog td:nth-child(8), .kog th:nth-child(8)').show();

我正在重复类选择器。

4

3 回答 3

8

你可以使用

$('.kog').find('td,th').filter(':nth-child(8)').show();

您会注意到它并没有更简洁,但它可能更好地显示了您的意图。

于 2013-03-04T14:52:26.697 回答
0

您可以缓存变量并在其中找到所需的内容。我个人会使用一个类来设置可见性。

var $kog = $( '.kog' );

$kog.find( 'td:nth-child(8), th:nth-child(8)' ).addClass( 'is-visible' );

那么你会有一个像这样的 CSS 类:

.is-visible { display: block; }

如果规则与您正在进行的其他任何事情发生冲突,您可能必须将规则指定为 !important。

于 2013-03-04T14:57:47.610 回答
0

在没有看到您的 HTML 或不知道您的用例的情况下,很难说。

.kod要返回多个表吗?如果是这样,您可能会展示您可能不打算展示的内容。如果有两个.kod表,每个表有 6 个 TD,您将在第二个表中显示内容。TH 选择器也是如此。

这似乎是一个相当奇怪的选择器/事情;这是一张只有一个标题和一个正文行的长表吗?如果是这样,那么我猜你在做什么是有道理的,你可以通过这样做避免重复类选择器:

jQuery('.kod').find("td:nth-child(8), th:nth-child(8)").show();  

这里的例子:http: //jsfiddle.net/n2dGm/

于 2013-03-04T15:07:18.030 回答