JQuery - 如何选择:元素的奇数直接子元素

发布于 2024-10-16 20:49:37 字数 358 浏览 11 评论 0原文

我有一个这样的表:

<table class='table'>
<tr></tr>
<tr><tr>
<tr>
<table><tr></tr></table
<tr></tr>
</table>

并且我只想选择 .table 之后紧邻的奇数 tr。

我尝试过的是:

$('.table > tr:odd').addClass('odd');

但它不起作用。

有人知道吗?谢谢。

I have a table as this:

<table class='table'>
<tr></tr>
<tr><tr>
<tr>
<table><tr></tr></table
<tr></tr>
</table>

and I want to select only the immediate odd tr after .table.

What I tried is:

$('.table > tr:odd').addClass('odd');

But it doesn't do the job.

Anyone knows? Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

同展鸳鸯锦 2024-10-23 20:49:37

我只想选择
.table 之后紧接着 tr。

您使用的类名与您提到的不同,请尝试:

 $('.table > tr:odd').addClass('odd');

同时确保将代码包装在准备好的处理程序中:

$(function(){
     $('.table > tr:odd').addClass('odd');
});

您还应该尝试添加 tbody

$('.table > tbody > tr:odd').addClass('odd');

and I want to select only the
immediate tr after .table.

You are using different class name than you mention, try:

 $('.table > tr:odd').addClass('odd');

Also make sure to wrap your code in ready handler:

$(function(){
     $('.table > tr:odd').addClass('odd');
});

You should also try adding tbody:

$('.table > tbody > tr:odd').addClass('odd');
回眸一笑 2024-10-23 20:49:37

另一种选择是使用 filter()(docs ) 方法。

$('.table > tbody > tr').filter(function(i){
    return !(i % 2);
}).addClass('odd');

这将使您能够在初始选择中使用有效的 CSS 选择器,从而在支持 querySelectorAll 的浏览器中提供良好的性能提升。

示例: http://jsfiddle.net/kbnH2/

A different option will be to use the filter()(docs) method.

$('.table > tbody > tr').filter(function(i){
    return !(i % 2);
}).addClass('odd');

This will enable you to use a valid CSS selector in your initial selection giving a good performance boost in browsers that support querySelectorAll.

Example: http://jsfiddle.net/kbnH2/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文