有没有办法直接检查一个元素,如果它是来自具有给定类的父元素的第一个元素?
我知道我可以得到父母 - >得到给定班级的孩子并检查第一个孩子是否与元素相等,但这似乎不是我认为的正确方式..不存在"更好"溶液
// 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>
&#13;
答案 0 :(得分:2)
您可以尝试的一个选项是检查#check
的第一个.child
元素集合中是否存在.parent
$('.parent').find('.child:first').is('#check');
我们在此处找到.child
的所有第一个.parent
后代,然后检查#checks
是否是其中之一
另一个是检查#check
是否是.child
父母的第一个#check
孩子
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>
答案 1 :(得分:1)
这是你在找什么?
编辑:添加了for each
循环。
$(".parent").each(function(index) {
alert($(this).find(".child").first().is($("#check")))
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/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>
&#13;