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