我正在尝试为我的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>
我使用的jQuery查询是为了将所有将数据模块设置为不同于null的元素:
var $viewModules = $('[data-module]');
选择这些元素是否有更有效的方法?我从未在jQuery中使用过数据选择器。感谢。
答案 0 :(得分:6)
由于您没有真正使用通用tagName
或className
来进一步减少搜索,因此您当前的方式将是最有效的方法。
var $viewModules = $('[data-module]');
答案 1 :(得分:3)
这是一个艰难的问题,然而,当您询问效率时,在文档上使用find()似乎要快一些,最多可达10%。
var $viewModules = $(document).find('[data-module]');
请参阅Test-Results
如果我不得不猜测为什么它会更快我会说在某种程度上找到了在幕后进行优化但这只是猜测。