我有一个元素集合,虽然每个元素都有一个唯一的 String 标识符,但我不能安全地将它的值用作元素 ID
,因为我不能保证它只包含有效字符。因此,我将标识符存储在每个元素 jQuery.data()
对象中。虽然我可以使用data-
属性,但我真的不喜欢在可能不得不转义引号等的地方使用选择器的想法,但是如果有巨大的效率奖励,则应该考虑到这一点。使用该.data()
对象的解决方案也很棒,因为它适用于任何数据类型。
我想知道选择单个元素的最有效方法是什么。目前,这是我的解决方案:
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()
函数更好,因为它显式返回单个(或没有)项目,并在需要时立即停止迭代,但有更好的方法吗?