如何判断元素是否位于DOM中的另一个元素之前

问题描述:

如何检查元素是否位于DOM中的另一个元素之前?如何判断元素是否位于DOM中的另一个元素之前

例如

<div> 
    <div id='first'></div> 
    <div id='second'></div> 
</div> 
<div id='third'></div> 

second元件是first之后和之前third。你怎么能检查这与jQuery?

没有一个jQuery功能可按这一点,但是你可以很容易地通过添加以下代码来实现它:

(function ($) { 
    $.fn.isBeforeElement = function (elem) { 
     if (typeof(elem) == "string") elem = $(elem); //just in case of bad input 
     return this.add(elem).index(elem) > 0; 
    } 
})(jQuery); 

之后,您可以拨打

$('#first').isBeforeElement($('#second')); //returns true 
$('#second').isBeforeElement($('#third')); //returns false 
$('#third').isBeforeElement($('#second')); //returns true 
//etc..