比较父级中的列表以匹配文本,将类添加到匹配的文本,页面上的倍数

时间:2017-05-17 04:30:57

标签: javascript jquery

我想比较匹配文本的列表对,并添加每个匹配的类。

HTML页面上有多对,每对都包含在父页面中。

EG:

第1组   - 第1项   - 第2项   - 第3项

  • 第1项(匹配)
  • 第2项(匹配)
  • 项目Z(不匹配)
  • 第3项(匹配)

第2组   - 项目X.   - 项目Y.   - 第3项

  • 第1项(不匹配)
  • 项目Y(匹配)
  • 第4项(不匹配)

使用纯JavaScipt或jQuery,如何将forEach中的匹配限制为当前每个孩子?

$(function(){
$( document ).bind( 'ready', function() {
    $( ".groups" ).children( ".compgroup" ).each( function() {

                    $('ul.t1 li').each(function(){
        var row=$(this).html();
        $('ul.t2 li').each(function(){
            if(row==$(this).html()) $(this).addClass('match');
        });
    });
    });
});

});

http://jsfiddle.net/nVtdE/89/

1 个答案:

答案 0 :(得分:1)

您在$('ul.t1 li').each内部使用$( ".groups" ).children( ".compgroup" )每个函数将循环ul元素两次。试试这个:

$(function(){
    $( document ).bind( 'ready', function() {
        $( ".groups > .compgroup" ).each( function() {
            var comGroupElem = $(this);
            comGroupElem.find('ul.t1 li').each(function(){
            var row=$(this).text().trim();
            comGroupElem.find('ul.t2 li').each(function(){
                if(row==$(this).text().trim()) $(this).addClass('match');
            });
        });
        });
    });
});

http://jsfiddle.net/3mn9jk2r/6/