有一种简单的方法来计算2个元素之间的节点深度差异吗?
例如:
<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 :(得分: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/>'
);
}
&#13;
<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>
&#13;