Javascript Jquery index()不';我找不到我的元素

Javascript Jquery index()不';我找不到我的元素,javascript,jquery,html,dom,Javascript,Jquery,Html,Dom,今天我遇到了jQuery.index()函数的一个小问题。 我有一个拥有主合同类的div列表。其中一个div也包含所选的类。 我想接收此选定元素的索引。 我尝试了很多操作,但都不起作用,函数只返回-1(这是该函数的fail返回值) 以下是有关HTML的部分: <div class="owl-carousel owl-loaded" rv-slide="context:stepHide" style="display: block;"> <!-- rivets: each-

今天我遇到了jQuery.index()函数的一个小问题。 我有一个拥有主合同类的div列表。其中一个div也包含所选的类。 我想接收此选定元素的索引。 我尝试了很多操作,但都不起作用,函数只返回-1(这是该函数的fail返回值)

以下是有关HTML的部分:

<div class="owl-carousel owl-loaded" rv-slide="context:stepHide" style="display: block;">
   <!-- rivets: each-contract -->
   <div class="owl-stage-outer">
      <div class="owl-stage" style="transition: 0s; width: 654px; transform: translate3d(218px, 0px, 0px);">
         <div class="owl-item active center" style="width: 109px;">
            <div class="primaryContract" rv-text="contract:primaryContractReference" rv-value="contract:primaryContractReference" rv-addclass="context:primaryContract | eq contract:primaryContractReference | if 'selected'">243992</div>
         </div>
         <div class="owl-item active" style="width: 109px;">
            <div class="primaryContract selected" rv-text="contract:primaryContractReference" rv-value="contract:primaryContractReference" rv-addclass="context:primaryContract | eq contract:primaryContractReference | if 'selected'">444444</div>
         </div>
         <div class="owl-item active" style="width: 109px;">
            <div class="primaryContract" rv-text="contract:primaryContractReference" rv-value="contract:primaryContractReference" rv-addclass="context:primaryContract | eq contract:primaryContractReference | if 'selected'">665441</div>
         </div>
         <div class="owl-item" style="width: 109px;">
            <div class="primaryContract" rv-text="contract:primaryContractReference" rv-value="contract:primaryContractReference" rv-addclass="context:primaryContract | eq contract:primaryContractReference | if 'selected'">243992</div>
         </div>
         <div class="owl-item" style="width: 109px;">
            <div class="primaryContract selected" rv-text="contract:primaryContractReference" rv-value="contract:primaryContractReference" rv-addclass="context:primaryContract | eq contract:primaryContractReference | if 'selected'">444444</div>
         </div>
         <div class="owl-item" style="width: 109px;">
            <div class="primaryContract" rv-text="contract:primaryContractReference" rv-value="contract:primaryContractReference" rv-addclass="context:primaryContract | eq contract:primaryContractReference | if 'selected'">665441</div>
         </div>
      </div>
   </div>
</div>

有人知道我在哪里犯了错误吗?

它不起作用的原因

您正在尝试传递一个类
。选择的
,而
索引()
需要一个对象或DOM元素

如果对元素集合调用.index(),并传入DOM元素或jQuery对象,.index()将返回一个整数,指示传递的元素相对于原始集合的位置。 如果选择器字符串作为参数传递,.index()返回一个整数,指示jQuery对象中第一个元素相对于选择器匹配的元素的位置。如果找不到元素,.index()将返回-1

所做的更改

var selector = $('.selected')
var index = items.index(selector);
工作演示
var项目=$(“div.primaryContract”);
变量选择器=$('.selected')
风险值指数=项目指数(选择器);
警报(索引)

243992
444444
665441
243992
444444
665441
jQuery
index()
将仅从其父代返回子代的索引,而不从父代返回子代的索引。因此,您必须将其父对象用作子对象,才能将父对象用作父对象

initializeSelectedCarouselItem:function(){
    var index = $(".primaryContract.selected").parent().index();
    console.log(index);
}

您应该获取父索引,因为primaryContract是父div的唯一子级
流这个代码

var index = $(".primaryContract.selected").parent().index();


@对不起,我没听清楚。我已经添加了演示,我以为你有可用的演示链接,但你可能在这里的演示页面中创建了。@Adil请检查你的控制台。我会将其更改为警报。@Adil我已将其更改为
alert()
,以便更好地理解
:)
您的演示可以使用console.log,无需警报。我最初以为演示是在一些外部站点上进行的,比如jsfiddle.net,但后来意识到您是在answer中的页面演示中进行的。使用
.map()
来获得第二个答案,而不是循环和推送。
var数组=$(“.primaryContract.selected”).map(函数(){.return$(this.parent(.owl item”).index();}.get()
var index = $(".primaryContract.selected").parent().index();
var indexes=[];
$(".primaryContract.selected").each(function(){
    indexes.push($(this).parent(".owl-item").index());
});
alert(indexes);