选择具有特定数据的所有 html 标记的最有效方法是什么 - [适当性],无论值如何

What's the most efficient way of selecting all html tags that have a specific data-[propriety] regardless of value?

本文关键字:适当性 是什么 有效 数据 html 选择 方法      更新时间:2023-09-26

我正在尝试为我需要的js模块添加某种动态配置。我声明了一些这样的 html 标签:

    <header data-module='js/views/header'>
    </header>
    <section data-module='js/views/homepage' data-hash='/'>
    </section>
    <section data-module='js/views/statistics' data-hash='/statistics'>
    </section>
    <footer data-module='js/views/footer'>
    </footer>

我用来获取所有将数据模块设置为不同于 null 的元素的 jQuery 查询是:

            var $viewModules = $('[data-module]');

有没有更有效的方法来选择这些元素?我从未在jQuery中使用过数据选择器。谢谢。

由于您实际上没有一个通用的tagNameclassName来进一步减少搜索,因此您当前的方式将是最有效的方法。

var $viewModules = $('[data-module]');
这是一个

困难的问题,但是,看到您询问效率,在文档上使用find()似乎稍微快一些,最多10%。

var $viewModules = $(document).find('[data-module]');

查看测试结果

如果我不得不猜测为什么它更快,我会说以某种方式发现在幕后进行了优化,但这只是一个猜测。