4

我正在尝试为我的 require 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 中使用过数据选择器。谢谢。

4

2 回答 2

6

由于您没有真正的共同点tagNameclassName用于进一步减少搜索,因此您当前的方式将是最有效的方式。

var $viewModules = $('[data-module]');
于 2012-08-15T15:40:26.167 回答
3

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

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

查看测试结果

如果我不得不猜测为什么它会更快,我会说 find 在幕后进行了优化,但这只是一个猜测。

于 2012-08-15T15:44:49.537 回答