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ます。私の質問は、これら 2 つの div を比較し、div#1 と比較して 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 に答える