使用jquery的唯一属性值
是否有一种方法可以获取某个属性的所有唯一值 e、 g使用jquery的唯一属性值,jquery,Jquery,是否有一种方法可以获取某个属性的所有唯一值 e、 g 我需要获取div.bob上数据xyz属性的所有不同值 所以它应该归还鱼、狗和猫 var array = $('div.bob').map(function() { return $(this).data('xyz'); }); 这将返回所有值。然后您可以通过一个独特的函数来运行它 函数ArrNoDupe(a){ var temp={}; 对于(变量i=0;i
我需要获取div.bob上数据xyz属性的所有不同值
所以它应该归还鱼、狗和猫
var array = $('div.bob').map(function() { return $(this).data('xyz'); });
这将返回所有值。然后您可以通过一个独特的函数来运行它
函数ArrNoDupe(a){
var temp={};
对于(变量i=0;i
跟踪已处理的值:
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();
参考资料:
当然,这只适用于基本值。如果要映射到对象,则必须重写对象的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));
小代码:创建一个对象并生成“dog”“fish”“cat”属性。这将使它们独一无二。然后从对象中获取唯一的属性名称。简单易用:
var items = {};
$('div.bob').each(function() {
items[$(this).attr('data-xyz')] = true;
});
var result = new Array();
for(var i in items)
{
result.push(i);
}
alert(result);
(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));
var items = {};
$('div.bob').each(function() {
items[$(this).attr('data-xyz')] = true;
});
var result = new Array();
for(var i in items)
{
result.push(i);
}
alert(result);