Получить среднее значение класса с помощью 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>

Ответ 1

Вы можете использовать : eq, чтобы получить элемент по определенным индексам.

Live Demo

$('.myDivs:eq(2), .myDivs:eq(3)').each(function(){
   alert($(this).text());
});

Используя комбинацию : gt и : lt даст вам диапазон. Это полезно, когда у вас много элементов.

Live Demo

$('.myDivs:gt(1):lt(2)').each(function(){
   alert($(this).text());
});

Изменить. Чтобы сделать его динамичным, чтобы вам не пришлось жестко кодировать середину, вы можете разделить длину коллекции элементов и использовать ее для начальной точки, это заставит ее работать независимо от того, сколько элементы, которые у вас есть с классом myDivs.

Live Demo

mid = Math.floor($('.myDivs').length /2) -2;
$('.myDivs:gt(' + mid +'):lt(2)').each(function(){
   alert($(this).text());
});

Ответ 2

Вы можете использовать . slice()

Уменьшить набор согласованных элементов до подмножества, заданного диапазоном индексы

и нажмите текстовое значение в массив, используя . map():

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

Скриншот Демо

Ответ 3

Один динамический способ - вычислять по длине класса.

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());
});

Вот демонстрация

Ответ 4

Ссылка на них по индексу

var myDivs = $('.myDivs'),
    third = myDivs.eq(2),
    fourth = myDivs.eq(3);

Чтобы получить текстовое значение, просто используйте text()

Ответ 5

использовать

$( "div:nth-child(3)" ).html();
$( "div:nth-child(4)" ).html();

он вернет вам текст 3 и 4 текста div Fiddel

Ответ 6

jQuery имеет простую функцию get

http://api.jquery.com/eq/

var $myDivs = $(".myDivs");
var nr3 = $myDivs.eq(2);
var nr4 = $myDivs.eq(3);

Ответ 7

Если вы планируете выполнять ту же операцию как на третьем, так и на четвертом div, используйте следующий код:

$('.myDivs:eq(2), .myDivs:eq(3)').each(function(){
   // perform your operation here
});

Если вы хотите выполнять разные задачи для обоих из них, то

var myDivs = $(".myDivs"),
    thirdDiv = myDivs[2],
    fourthDiv = myDivs[3];

Теперь вы можете привязывать настраиваемые события только к тем отдельным div.

например:

$(thirdDiv).click(function() {
    // custom function
});