2014-05-08 8 views
11

Wie kann ich den dritten und vierten Wert von class="myDivs" mit jQuery bekommen?den mittleren Wert einer Klasse Get mit JQuery

Unten ist mein Code:

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> 

Antwort

9

Sie können :eq verwenden Sie das Element an bestimmten Indizes zu erhalten.

Live Demo

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

die Kombination von :gt und :lt Mit geben Sie reichen. Es ist nützlich, wenn Sie viele Elemente haben.

Live Demo

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

bearbeiten Um es dynamisch, so dass Sie zu hart Code nicht in der Mitte haben Sie die Länge der Elementsammlung teilen kann und es für Startpunkt verwenden, wird diese machen es funktioniert unabhängig davon, wie viele Elemente Sie mit Klasse myDivs haben.

Live Demo

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

Referenz sie durch den Index

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

den Textwert zu erhalten, benutzen Sie einfach text()

2

Verwendung

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

es Sie Text von 3 und 4 div Text zurückzukehren Fiddel

6

Sie .slice()

Reduzieren Sie die Gruppe angepaßter Elemente auf eine Teilmenge von einer Reihe von Indizes angegeben verwenden können

und drücken Sie den Textwert in ein Array mit .map():

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

Fiddle Demo

5

Eine dynamische Art und Weise ist durch die Länge der Klasse Zahl zu berechnen.

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

Here is demo

+2

tatsächlich sind Sie die aktuelle Frage zu beantworten ... –

0

Wenn Sie denselben Vorgang auf beiden dritten und vierten divs auszuführen planen, dann verwenden Sie folgenden Code:

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

Wenn Sie verschiedene Aufgaben auf beide ausführen möchten von ihnen, dann

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

Jetzt können Sie benutzerdefinierte Ereignisse an t binden Schlauch bestimmte Divs allein.

zum Beispiel:

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

Oh ya! Aber es kann thirdDiv.onclick = function() {} sein :) – mohamedrias