javascript - 如何检查具有类的元素是否是该类的第一个子元素

标签 javascript jquery jquery-selectors

有没有办法直接检查一个元素,如果它是来自给定类的父元素的第一个元素?

我知道我可以获取父级 -> 获取给定类的子级并检查第一个子级是否与该元素相等,但这似乎不是我认为的正确方法.. 没有“更好”的解决方案吗?

// is obviously not first-child
console.log($('#check').is(':first-child'));       // false
console.log($('#check').is('.child:first-child')); // false
console.log($('#check').is('.child:first'));       // false

// want to get true for "element is first child with this class"
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>


<div class="parent">
    <div class="something"></div>
	<div class="child"></div>
	<div class="child"></div>
	<div class="child"></div>
	<div class="child"></div>
</div>
<div class="parent">
	<div class="something"></div>
	<div class="child" id="check"></div>
	<div class="child"></div>
	<div class="child"></div>
	<div class="child"></div>
</div>

最佳答案

您可以尝试的一个选项是检查 #check 是否出现在 .parents< 的第一个 .child 元素的集合中/p>

$('.parent').find('.child:first').is('#check');

在这里我们找到所有第一个 .child .parent 的后代,然后检查 #checks 是否是其中之一

另一种是检查#check是否是#check父类的第一个.child

var $check = $('#check');
$check.is($check.parent().children('.child:first'))

所以

// is obviously not first-child
snippet.log($('#check').is(':first-child')); // false
snippet.log($('#check').is('.child:first-child')); // false
snippet.log($('#check').is('.child:first')); // false



var $check = $('#check');
snippet.log($check.is($check.parent().children('.child:first')));

snippet.log($('.parent').find('.child:first').is('#check')); // false
<!-- Provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>


<div class="parent">
  <div class="something"></div>
  <div class="child"></div>
  <div class="child"></div>
  <div class="child"></div>
  <div class="child"></div>
</div>
<div class="parent">
  <div class="something"></div>
  <div class="child" id="check"></div>
  <div class="child"></div>
  <div class="child"></div>
  <div class="child"></div>
</div>

关于javascript - 如何检查具有类的元素是否是该类的第一个子元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36443502/

相关文章:

javascript - 在 vuex 中处理嵌套/复杂对象

javascript - JQuery UI 可选择 + 动态列表

javascript - 为什么我的自定义函数不起作用?

javascript - 应用于特定数字输入字段的混合/最大范围

jquery - 使用 jQuery 进行部分匹配?

jquery - 使用 jquery 制作动画菜单

javascript - 将javascript变量从一个html页面传递到另一个页面

javascript - IE 中的 Ajax 请求 "Access is denied"

javascript - 箭头函数 : how to indicate un-needed parameters in destructuring

jquery - 如何在此 rails 文件中集成 jQuery Scrollbar UI 元素