1

假设我有以下一组元素,如何比较以查看所有“数据类型”属性是否相同?

我知道我可以使用 .each() 遍历它们并存储“最后一个”并逐个比较它们,但似乎应该有一种更简单、更优雅的方式。类似于以下(完全虚构的)功能......

<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
4

2 回答 2

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;

小提琴

于 2013-10-29T20:37:36.897 回答
0
function same(attr){
    return $('.item').length == $('.item[data-type="'+attr+'"]').length;
}

var isSame = same($('.item:first-child').attr('data-type'));

将获取第一个属性,然后将其传入,将其与其他属性进行比较...

于 2013-10-29T20:39:35.880 回答