我有元素的集合,並且而每個有唯一的字符串標識,我不能放心地使用它的值作爲元素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()
帶有一個函數更好,因爲它明確地返回一個(或不是)項目,並在需要時立即停止迭代,但有沒有更好的方法?
您是否動態創建這些元素?或者你有任何控制他們的創作和追加到頁面? –
如果您的數據不包含引號(單或雙),爲什麼不使用數據組屬性? –