2

我有 2 个元素( div ):

一世

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

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

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

4

1 回答 1

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);
于 2012-05-28T07:16:50.227 回答