跟蹤其值,你已經處理:
var seen = {};
var values = $('div.bob').map(function() {
var value = this.getAttribute('data-xyz');
// or $(this).attr('data-xyz');
// or $(this).data('xyz');
if(seen.hasOwnProperty(value)) return null;
seen[value] = true;
return value;
}).get();
參考:$.map()
這當然,只能用原始的價值觀的作品。如果映射到對象,則必須重寫對象的方法toString()
,以便它們可以用作鍵。
或者作爲插件:
(function($) {
$.fn.map_unique = function(callback) {
var seen = {};
function cb() {
var value = callback.apply(this, arguments);
if(value === null || seen.hasOwnProperty(value)) {
return null;
}
seen[value] = true;
return value;
}
return this.map(cb);
});
}(jQuery));
尼斯用我的功能! :-) –