jquery 2 divs儿童比较

时间:2012-05-28 06:58:04

标签: javascript jquery

我有2个元素(div):

<div id="1">
 <div >
  <img /> <img />
  <span> </span>
   . 
   .
 <div>
 <div>
  <p></p>
  .
  .
 </div> 
 .
 .
</div>

II

<div id="2">
 <div >
  <img />
  <span></span>
  <h1></h1>
  . 
  .
 <div>
 . 
 .
</div>

两个div都有different number of child,而这些孩子还有different number of there subchilds我的问题是,我想比较这两个div并访问div#2中存在的所有不相似的元素与div#1相比较。如何使用jquery方法并尽可能高效地完成此操作?

1 个答案:

答案 0 :(得分:1)

这对你来说是一个好的开始:

function compare(o1, o2){
 var arr = [];
 $(o1).each(function(i1){        
     var match = false;
     $(o2).each(function(i2){            
         if ( $("o1:eq("+i1+")").html() == $("o2:eq("+i2+")").html() )
             match = true;
     });
     if ( !match )
         arr.push($("o1:eq("+i1+")")[0]);        
 });
 return arr;
}

你查看每个元素并寻找匹配。推送数组中没有匹配的所有元素并返回数组 请注意,它比较了每个给定对象的第一个孩子 称之为:

var diffs = compare(div1,div2);