2012-05-28 52 views
2

我有2個元素(格):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我的問題是,我想比較這些2個div並訪問div#2中存在的所有不相似的元素與div#1比較。我如何使用jquery方法做到這一點,並儘可能高效?

+0

我的jQuery沒有很好的瞭解,所以我用for循環和代碼搞砸,而不是良好的情況下使用和U可以顯示 – gaurav

+0

@Sagiv,幫我請 – gaurav

+0

所以你想訪問所有在兩者中的元素,或者所有在1但不是2或2但不是1的元素?對不起,這個問題有點不清楚。 – Sampson

回答

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); 
+0

什麼是「ind」? – thecodeparadox