如何解决如何检测元素是否是给定类的第一个子元素?

使用 jquery 的.index()重载,您可以将其应用于预定义的集合(jquery 对象):

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>

解决方法

我正在尝试使用 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>