Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jQuery获取父元素的前三个子元素_Javascript_Jquery_Jquery Selectors - Fatal编程技术网

Javascript 使用jQuery获取父元素的前三个子元素

Javascript 使用jQuery获取父元素的前三个子元素,javascript,jquery,jquery-selectors,Javascript,Jquery,Jquery Selectors,我想得到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&q

我想得到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>

要素1
要素2
要素3
要素4

我想用jQuery实现这一点。实现这一点的最佳方法是什么?

实际上您可以使用带有函数表示法的伪类来实现这一点。因此,这将像:

:nth-child(-n+3)
Represents the first three elements. [=-0+3, -1+3, -2+3]
其中,函数表示法表示列表中的元素,其索引与由
a+B
定义的自定义数字模式中的索引匹配,其中:
A
是一个整数步长,
B
是一个整数偏移,
n
都是正整数,从
0
开始

因此,您的最终代码如下所示:

const elements=document.querySelectorAll('#parent>div:n个子(-n+3)'))
elements.forEach(element=>{
console.log(element.id)
})

要素1
要素2
要素3
要素4
您可以使用jQuery函数和一个带有函数索引的小条件if语句

 $('#parent').children().each(function(index){
  // To counteract the zero-based index.
  index++
  if (index < 4) {
    console.log(this);
  }
});
$('#parent').children().each(函数(索引){
//以抵消从零开始的索引。
索引++
如果(指数<4){
console.log(this);
}
});

$(“#parent”).children().slice(0,3).map(it=>it.id)
你试过什么吗?好吧,不管我最近的答案是什么,我对此没有问题,但至少要澄清一下,并告诉我原因:DWorks很棒,这是一个很好的解释!谢谢