[英]Get Unique DOM elements in jQuery
HTML:
<span personname="Mr. Bean" class="person person-male"></span>
<span personname="Neo" class="person person-male"></span>
<span personname="Neo" class="person person-male"></span>
<span personname="Trinity" class="person person-female"></span>
<span personname="Trinity" class="person person-female"></span>
<span personname="Neo" class="person person-male"></span>
<span personname="Mr. Bean" class="person person-male"></span>
JS:
Array.prototype.unique =
function () {
var a = [];
var l = this.length;
for (var i = 0; i < l; i++) {
for (var j = i + 1; j < l; j++) {
// If this[i] is found later in the array
if (this[i] === this[j])
j = ++i;
}
a.push(this[i]);
}
return a;
};
function unique(list) {
var result = [];
$.each(list, function (i, e) {
if ($.inArray(e, result) == -1) result.push(e);
});
return result;
}
$.unique($('span.person').get()).length // ==> 7
$.unique($('span.person')).length // ==> 7
$('span.person').get().unique().length // ==> 7
unique($('span.person').get()).length // ==> 7
unique($('span.person')).length // ==> 7
我如何只獲得獨特的DOM元素?
也就是說, $('span.person).unique().length // ==> 3
我正在尋找一個內置功能,如果有的話。
如果您只是想獲得獨特的personname
,這將有效:
function uniquePerson(elements) {
var results = $();
var names = {};
elements.each(function() {
var name = (this).attr('personname');
if (!names[name]) {
results = results.add(this);
names[name] = true;
}
});
return results;
}
所有DOM元素都不同 - 您只想比較personname
屬性,而不是整個元素。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.