您可以在之前缓存的 jQuery 选择器上使用第 n 个子选择器吗?

发布于 2024-10-04 03:40:26 字数 371 浏览 4 评论 0原文

使用 DOM 时,我倾向于缓存一个项目,检测它是否存在,然后执行一些工作。像这样:

var $fooModules = $j('.foo-modules');

if ($fooModules .length > 0) {
    //do something.
}

但是,我如何处理使用像 nth-child 这样的 jQuery 选择和我的缓存选择器?

我知道我不能这样做:

        $j($fooModules:nth-child(3n).addClass('myClass');

你会做什么来解决这个常见问题?

谢谢

-R

When working with the DOM, I tend cache an item, detect if it is present, then perform some work. Like so:

var $fooModules = $j('.foo-modules');

if ($fooModules .length > 0) {
    //do something.
}

But, how do I tackle using a jQuery select like nth-child with my cached selector?

I know I cannot do this:

        $j($fooModules:nth-child(3n).addClass('myClass');

What do you do, to get around this common problem?

Thanks

-R

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

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

发布评论

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

评论(1

山有枢 2024-10-11 03:40:26

您可以使用 .filter() 使用选择器或函数,如下所示:

$fooModules.filter(":nth-child(3n)").addClass('myClass');

You can use .filter() to filter a set down further using a selector or function, like this:

$fooModules.filter(":nth-child(3n)").addClass('myClass');
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文