有没有更好的方法来写这个:
$('.kog td:nth-child(8), .kog th:nth-child(8)').show();
我正在重复类选择器。
答案 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();