假设我有以下元素集,如何比较以查看所有“数据类型”属性是否相同?
我知道我可以使用.each()迭代它们并存储“last”并逐一比较它们,但似乎应该有一种更简单,更优雅的方式。像以下(完全虚构的)功能......
<span class="item" data-type="server"></span>
<span class="item" data-type="server"></span>
<span class="item" data-type="server"></span>
$('.item').attr('data-type').sameFunc() = true
或
<span class="item" data-type="printer"></span>
<span class="item" data-type="server"></span>
<span class="item" data-type="server"></span>
$('.item').attr('data-type').sameFunc() = false
答案 0 :(得分:3)
检查具有相同类的所有元素是否具有相同的数据属性:
$('.item').length == $('.item[data-type="server"]').length;
看看该类的元素数是否与该类和数据属性的元素数相匹配。
编辑:
另一种不知道数据属性值的方法:
var same = $('.item').length == $('.item').filter(function(i) {
return $(this).data('type') == $('.item').eq(i-1).data('type');
}).length;
答案 1 :(得分:0)
function same(attr){
return $('.item').length == $('.item[data-type="'+attr+'"]').length;
}
var isSame = same($('.item:first-child').attr('data-type'));
将获取第一个属性,然后将其传递,将其与其他属性进行比较......