我想比较匹配文本的列表对,并添加每个匹配的类。
HTML页面上有多对,每对都包含在父页面中。
EG:
第1组 - 第1项 - 第2项 - 第3项
第2组 - 项目X. - 项目Y. - 第3项
使用纯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');
});
});
});
});
});
答案 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');
});
});
});
});
});