如何在循环中检测具有相同属性值的元素?

时间:2014-06-08 12:37:13

标签: jquery each

我循环使用具有特定类名的元素,我只需要获得具有唯一data-title属性值的元素。

目前我正在获取重复值。

http://jsfiddle.net/8XaD9/

$('.video-play').each(function (index, element) {
    var mytitle     = $(this).attr('data-title');
    $('.items').append('<li>'+ mytitle +'</li');

});

3 个答案:

答案 0 :(得分:7)

只需跟踪您看过的标题。

var titlesSeen = [];

$('.video-play').each(function (index, element) {
    var mytitle = $(this).attr('data-title');
    if($.inArray(mytitle, titlesSeen) == -1) {
        $('.items').append('<li>'+ mytitle +'</li>');
        titlesSeen.push(mytitle);
    }
});

fiddle

答案 1 :(得分:0)

我编写了一个函数来检查项目是否已经存在,如果是,则将其从列表中删除。

<强> JS

$('.video-play').each(function (index, element) {

    var mytitle     = $(this).attr('data-title');

    checkDuplicates(mytitle);

    $('.items').append('<li>'+ mytitle +'</li');

});

function checkDuplicates(mytitle){

    $(".items li").each(function(){

        if(mytitle == $(this).html()){
               $(this).remove();
    }
           });

}

fiddle

答案 2 :(得分:0)

将您的逻辑改为:

var mytitle = $(this).attr('data-title');

//Add this line to check if it is unique
if($(".video-play[data-title='"+mytitle+"']").toArray().length<2)    
$('.items').append('<li>'+ mytitle +'</li');