0

我想用.index,但它似乎不工作!

<div id="main">
       <div id="one"> 
               <div class="red"> ... </div>
       </div> 
       <div id="two"> 
               <div class="green"> ... </div>
       </div> 
       <div id="three"> 
               <div class="blue"> ... </div>
       </div> 
</div> 

所以我尝试了:

var isDivThere = $("main").index("#two") != -1;

但如前所述,不去...

我怎样才能简单地在 div #main 中查找一个 div?

4

6 回答 6

3
$("#main > div").index($("#two"))

var isDivThere =  $("#main > div").index($("#two")) != -1;

注意:>仅用于过滤第一级 div。因此,如果您想检查嵌套 div 的索引,我的解决方案将不起作用。

于 2013-06-28T10:38:01.037 回答
2

要检查是否存在,您可以简单地执行以下操作:

var isDivThere = !!$('#two').length;

如果#two必须存在于内部#main

var isDivThere = !!$('#main').find('#two').length;

如果#two必须是 的孩子#main

var isDivThere = !!$('#main').children('#two').length;
于 2013-06-28T10:38:58.977 回答
1

要知道元素在其容器中的索引,只需调用index您正在寻找的元素 id:

var isDivThere = $("#two").index();

http://jsfiddle.net/NGhL7/

于 2013-06-28T10:59:12.827 回答
0

您可以使用 jquery 的 find() 函数,

  $("#main").find("#two");
于 2013-06-28T10:42:30.533 回答
0

您需要添加 # 符号以按 id 进行选择。在这里工作小提琴:

$("#yourId");

http://jsfiddle.net/nnFh5/

于 2013-06-28T10:41:17.023 回答
0

$因为 ID 在所有主体中是唯一的,这足以完成您所做的事情:

var isDivThere =  !!$$("#two").length;

您将永远不会找到另一个 ID="two" 的元素,因此您无需确定在主 div 内的说明

于 2013-06-28T10:43:55.997 回答