JQuery:检查以前的兄弟是否是第一个孩子

时间:2011-12-14 14:22:28

标签: jquery

使用JQuery,如何检查元素的前一个兄弟是否是第一个孩子?

我尝试过以下代码,但不起作用:

if( $(this).prev() === $(this).siblings(":first-child") ){
    //do something
}

使用上述===方法的示例:http://jsfiddle.net/xnHfM/

4 个答案:

答案 0 :(得分:5)

if($(this).index() === 1){ // if index is 1 it means it's for sure the second children
  // here u can grab $(this).prev(), and it's for sure the first one
}

demo http://jsfiddle.net/p7sAq/

P.S。我会试着看看关于这个解决方案的性能vs。(':first-child')=> http://jsperf.com/jquery-check-previous-first-child

修改:查看最后评论,谢谢@RightSaidFred:)

答案 1 :(得分:2)

$(this).parent().find(">:first-child")[0] == $(this).prev()[0]

答案 2 :(得分:1)

这不是最有效的方法,但您可以使用prevAll并计算以前的兄弟姐妹的数量。这是一个例子(jsFiddle)......

<ul id="test1">
    <li>One</li> 
    <li class="two">Two</li>
</ul>
<ul id="test1">
    <li>One</li>     
    <li>Two</li>
    <li class="three">Three</li>
</ul>
<script>
alert("Test 1 is...");
alert($("#test1 .two").prevAll().length == 1);
alert("Test 2 is...");
alert($("#test2 .three").prevAll().length == 1);
</script>

答案 3 :(得分:1)

试试这个:

if ($(this).prev(':first-child').length > 0) {