use*_*762 11 javascript jquery
如何获得class="myDivs"使用jQuery 的第三个和第四个值?
以下是我的代码:
HTML:
<div class="myDivs">Stack</div>
<div class="myDivs">Over</div>
<div class="myDivs">Flow</div>
<div class="myDivs">And</div>
<div class="myDivs">Exchange</div>
<div class="myDivs">Question</div>
<div class="myDivs">Ask</div>
Run Code Online (Sandbox Code Playgroud)
您可以使用:eq来获取特定索引处的元素.
$('.myDivs:eq(2), .myDivs:eq(3)').each(function(){
alert($(this).text());
});
Run Code Online (Sandbox Code Playgroud)
使用:gt和:lt的组合将为您提供范围.当你有很多元素时它很有用.
$('.myDivs:gt(1):lt(2)').each(function(){
alert($(this).text());
});
Run Code Online (Sandbox Code Playgroud)
编辑要使其动态化,以便您不必对中间进行硬编码,您可以划分元素集合的长度并将其用作起始点,这将使其与您对类的元素数量无关myDivs.
mid = Math.floor($('.myDivs').length /2) -2;
$('.myDivs:gt(' + mid +'):lt(2)').each(function(){
alert($(this).text());
});
Run Code Online (Sandbox Code Playgroud)
你可以使用.slice()
将匹配元素集减少到由一系列索引指定的子集
并使用.map()将文本值推送到数组中:
var valArr = $('.myDivs').slice(2,4).map(function() {
return this.textContent;
}).get();
Run Code Online (Sandbox Code Playgroud)
一种动态方式是按类计数的长度计算.
var mid1=Math.ceil($('.myDivs').length/2) - 1,
mid2=Math.floor($('.myDivs').length/2) - 1;
if(mid1===mid2){
//handle the case
}
$('.myDivs:eq('+mid1+'), .myDivs:eq('+mid2+')').each(function(){
alert($(this).text());
});
Run Code Online (Sandbox Code Playgroud)