我有两个元素,具有以下设置:
<span data-placeholder-class="test-class"></span> <span data-placeholder-template="/some/template.hbs"></span>
我使用下划线来遍历包含这些属性之一的任何元素,然后执行相关操作.
目前这样做是这样的
_.each($('[data-placeholder-class],[data-placeholder-template]'),function cb(element) { // code goes here })
我不想定义每个数据属性来循环,而是想知道是否有一种方法可以选择包含公共关键字的所有属性,在本例中为占位符.例如
_.each($('[data-placeholder-*]'),function cb(element) { // code goes here })
任何人都知道这是否可行?
解决方法
您可以考虑使用一个单独的函数来创建您的选择器,这样您就不必完全键入选择器(但是您必须编写函数).
如参见:
function getSelector() { return Array.prototype.map.call(arguments,function(key) { return '[data-placeholder-' + key + ']'; }).join(','); }
这将返回您想要的选择器,并使用1 … N个参数.
getSelector('class','template') // returns "[data-placeholder-template],[data-placeholder-class]" _.each($(getSelector('class','template')),function cb(element) { // code goes here });