使用 jQuery 获取父元素的前三个子元素
Get first three child elements of parent with jQuery
我想获取div中的前3个元素,所以e1、e2和e3:
<div id="parent">
<div id="e1">element 1</div>
<div id="e2">element 2</div>
<div id="e3">element 3</div>
<div id="e4">element 4</div>
</div>
我想用 jQuery 来做这个。实现此目标的最佳方法是什么?
实际上你可以用nth-child
伪class和函数符号来做到这一点。所以这将像:
:nth-child(-n+3)
Represents the first three elements. [=-0+3, -1+3, -2+3]
Where the functional notation represents elements in a list whose indices match those found in a custom pattern of numbers, defined by An+B
, where:
A
is an integer step size,
B
is an integer offset,
n
is all positive integers, starting from 0
.
所以你的最终代码应该是这样的:
const elements = document.querySelectorAll('#parent > div:nth-child(-n+3)')
elements.forEach(element => {
console.log(element.id)
})
<div id="parent">
<div id="e1">element 1</div>
<div id="e2">element 2</div>
<div id="e3">element 3</div>
<div id="e4">element 4</div>
</div>
但是 如果您想坚持使用 jQuery 本身,您可以改用 jQuery :lt()
。其中 jQuery( ":lt(index)" )
Select 匹配集合中索引小于 index
的所有元素
输出将是这样的:
const elements = $('#parent > div:lt(3)')
jQuery.each(elements, function (index, element) {
console.log(element.id)
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="parent">
<div id="e1">element 1</div>
<div id="e2">element 2</div>
<div id="e3">element 3</div>
<div id="e4">element 4</div>
</div>
您可以使用 jQuery 的 .each()
函数和一个带有函数索引的小条件 if 语句...
$('#parent').children().each(function(index){
// To counteract the zero-based index.
index++
if (index < 4) {
console.log(this);
}
});
我想获取div中的前3个元素,所以e1、e2和e3:
<div id="parent">
<div id="e1">element 1</div>
<div id="e2">element 2</div>
<div id="e3">element 3</div>
<div id="e4">element 4</div>
</div>
我想用 jQuery 来做这个。实现此目标的最佳方法是什么?
实际上你可以用nth-child
伪class和函数符号来做到这一点。所以这将像:
:nth-child(-n+3)
Represents the first three elements. [=-0+3, -1+3, -2+3]
Where the functional notation represents elements in a list whose indices match those found in a custom pattern of numbers, defined by
An+B
, where:A
is an integer step size,B
is an integer offset,n
is all positive integers, starting from0
.
所以你的最终代码应该是这样的:
const elements = document.querySelectorAll('#parent > div:nth-child(-n+3)')
elements.forEach(element => {
console.log(element.id)
})
<div id="parent">
<div id="e1">element 1</div>
<div id="e2">element 2</div>
<div id="e3">element 3</div>
<div id="e4">element 4</div>
</div>
但是 如果您想坚持使用 jQuery 本身,您可以改用 jQuery :lt()
。其中 jQuery( ":lt(index)" )
Select 匹配集合中索引小于 index
的所有元素
输出将是这样的:
const elements = $('#parent > div:lt(3)')
jQuery.each(elements, function (index, element) {
console.log(element.id)
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="parent">
<div id="e1">element 1</div>
<div id="e2">element 2</div>
<div id="e3">element 3</div>
<div id="e4">element 4</div>
</div>
您可以使用 jQuery 的 .each()
函数和一个带有函数索引的小条件 if 语句...
$('#parent').children().each(function(index){
// To counteract the zero-based index.
index++
if (index < 4) {
console.log(this);
}
});