2016-08-24 3 views
-1

2要素間のノードの深さの差を数える簡単な方法がありますか?2つの要素の間のJQueryカウントノードの深さの差

Exemple:

<div id="1"> 
    <div id="2"></div> 
    <div id="3"> 
    <div id="4"></div> 
    </div> 
</div> 
<div id="5"></div> 

私のような代たい:

diff($("#1"), $("#2")); //output 1 
diff($("#1"), $("#5")); //output 0 
diff($("#2"), $("#4")); //output 1 
diff($("#1"), $("#4")); //output 2 

を私は両親()、子供()関数とは何かがあると思いますが、私は知りません。 ..

+0

"ノード貴様/違いは" 何ですか?あなたのサンプル番号へのアクセス方法を説明してください。 – Jamiec

+0

なぜ「#1」と「#5」= 0;あなたが要素に入るたびに、「#2」と「#4」= 1 – Justinas

+0

がカウンターを1だけインクリメントします。したがって、#2と#4の場合は、カウンター= #4を得るために#3の中に入る必要があるので、カウンターを1だけ増やす必要があります。説明する方法がわからない –

答えて

1

あなたの例が正しく理解されていれば、ノードの親を数えるだけです:

diff($("#1"), $("#2")); 
 
diff($("#1"), $("#5")); 
 
diff($("#2"), $("#4")); 
 
diff($("#1"), $("#4")); 
 

 
function diff(a, b) { 
 
    $('#output').append(
 
    a.attr('id') + ' and ' + b.attr('id') + ' = ' + 
 
    Math.abs(a.parents().length - b.parents().length) 
 
    + '<br/>' 
 
); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="1"> 
 
    <div id="2"></div> 
 
    <div id="3"> 
 
    <div id="4"></div> 
 
    </div> 
 
</div> 
 
<div id="5"></div> 
 
<hr/> 
 
<div id="output"></div>

+0

問題を解決するためにスマートでいい方法です –

関連する問題