我该如何改进这个jQuery语句?

时间:2013-03-04 14:51:15

标签: jquery

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

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

我正在重复类选择器。

3 个答案:

答案 0 :(得分:8)

您可以使用

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

你会注意到它不是更简洁,但它可能更能表明你的意图。

答案 1 :(得分:0)

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

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

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

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

.is-visible { display: block; }

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

答案 2 :(得分:0)

没有看到您的HTML或了解您的用例,很难说。

.kod会返回多个表吗?如果是这样,您可能会展示您可能不打算展示的内容。如果有两个.kod表,并且每个表有6个TD,那么您将在第二个表中显示内容。同样适合你的TH选择器。

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

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

此处示例:http://jsfiddle.net/n2dGm/