我正在尝试使用 jQuery 检测所选元素是否是给定类的第一个子元素。在示例中,您可以看到它是类 .item 的第一个子元素,但选择器 :first-of-type 不适用于该子元素,因为它不是第一个 div。
如何解决?
var selectedItem = $('.list').find('.item.selected'); var isFirst = selectedItem.is(':first-of-type'); console.log('Is item first? ' + isFirst); <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="list"> <div class="search"></div> <div class="item selected">Item 1</div> <div class="item">Item 2</div> <div class="item">Item 3</div> </div>
使用 jquery 的.index()重载,您可以将其应用于预定义的集合(jquery 对象):
.index()
var isFirst = $(".list .item").index($('.list .item.selected')) == 0;
更新片段:
var items = $(".list .item"); var selectedItem = $('.list .item.selected'); var isFirst = items.index(selectedItem) == 0; console.log(isFirst) <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="list"> <div class="search"></div> <div class="item selected">Item 1</div> <div class="item">Item 2</div> <div class="item">Item 3</div> </div>