使用JQuery获取类的中间值

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)

Adi*_*dil 9

您可以使用: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)


Fel*_*lix 6

你可以使用.slice()

将匹配元素集减少到由一系列索引指定的子集

并使用.map()将文本值推送到数组中:

var valArr = $('.myDivs').slice(2,4).map(function() {
    return this.textContent;
}).get();
Run Code Online (Sandbox Code Playgroud)

小提琴演示


Zah*_*med 5

一种动态方式是按类计数的长度计算.

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)

这是演示