我有元素的集合,并且而每个有唯一的字符串标识,我不能放心地使用它的值作为元素ID
,因为我不能保证它将只包含valid characters。因此,我将标识符存储在每个元素jQuery .data()
对象中。虽然我可以使用data-
属性,但我不太喜欢使用可能需要避免引号等选择器的想法,但如果存在巨大的效率奖励,则应将其考虑在内。使用.data()
对象的解决方案也会很棒,因为这可能适用于任何数据类型。优化jQuery的过滤器独特的元素
我想知道选择单个元素的最有效方法是什么。目前,这是我的解决方案:
function get_group($from, group) {
var $result = $();
$from.each(function() {
if($(this).data("group") == group) {
result = $(this);
return false;
}
});
return $result;
}
我遍历每个结果,直到找到匹配。当我这样做时,我会从循环中突围。通过初始化$result
作为一个空的jQuery对象,我会永远返回jQuery,我认为这是最符合标准的做法,特别是.filter()
方法。
我认为这比使用.filter()
带有一个函数更好,因为它明确地返回一个(或不是)项目,并在需要时立即停止迭代,但有没有更好的方法?
您是否动态创建这些元素?或者你有任何控制他们的创作和追加到页面? –
如果您的数据不包含引号(单或双),为什么不使用数据组属性? –