Ich habe ein Formular, in dem ich id erhalte. Ich erhalte ein Array von ids aus der Datenbank. Ich muss zuerst überprüfen, ob current_id im Array ist oder nicht. Dafür schreibe ich unten Code, der für mich funktioniert.

var arr = [{'id':4},{'id':5},{'id':7},{'id':8},{'id':9}];

   var  current_id = 5;
    for(var i=0; i<arr.length; i++) 
        {
            if (arr[i] == current_id) 
            return true;
        }

Angenommen, ich möchte zur vorherigen ID von current_id oder zur nächsten ID von current_id wechseln, um diese Art von Daten in Javascript zu erhalten.

Beispielsweise:

Ich bin auf current_id = 5. und der Benutzer klickt auf previous_button, dann sollte es auf {'id':4} gehen. und wenn der Benutzer auf next_button klickt, sollte es zu {'id':7} gehen

Wenn der Benutzer bereits auf current_id = 4 ist und auf previous_button klickt, sollte false zurückgegeben werden. Gleiches gilt für next_button.

Danke im Voraus.

0
amit sutar 18 Jän. 2019 im 08:48

4 Antworten

Beste Antwort

Sie können diesen Code hier ausprobieren:

Beschreibung:

  1. Elementindex in Ordnung und überprüfen Sie Ihre aktuelle Position im Array.

  2. Zeigt den aktuellen Index an.

  3. Wenn Sie auf die Schaltfläche "Zurück" klicken, überprüfen Sie, ob das erste Element kein Array ist, wenn das Dekrement nicht bedingt ist, und zeigen Sie den Wert "Aktuelles Element -1" an.

  4. Wenn Sie auf die nächste Bedingung und das letzte Element klicken oder nicht, überprüfen Sie hier und ändern Sie den aktuellen Index und das Anzeigewertinkrement 2.

Klicken Sie in der nächsten Schaltfläche auf Anzeigeinkrement um jeweils 2, da beim Einschalten des aktuellen Indexinkrements das Inkrement 2 angezeigt wird. Der Hauptgrund dafür ist, dass das Element um 1 erhöht wird und der Index 0 enthält. Es wird also jeweils um 2 erhöht.

Wenn Sie nach dem itemIndex--; anzeigen, erhöhen Sie um eins.

var arr = [{'id':4},{'id':5},{'id':7},{'id':8},{'id':9}];
var  current_id = 5;
//find the your current id is exist in the array
var itemIndex = arr.map(function(o) { return o.id; }).indexOf(current_id);
//display the value of index
document.getElementById('display').innerHTML = itemIndex+1;
document.getElementById('prev').addEventListener('click', function(e) {
  if(itemIndex!=-1 && itemIndex != 0){
    document.getElementById('display').innerHTML = itemIndex;
    itemIndex--;
  }
});
document.getElementById('next').addEventListener('click', function(e) {
  if(itemIndex!==-1 && arr.length-1 > itemIndex){
    document.getElementById('display').innerHTML = itemIndex+2;
    itemIndex++;
    /*document.getElementById('display').innerHTML = itemIndex+1;*/
 }
});
<div id="display"></div>
	<button id="prev">prev</button>
	<button id="next">next</button>

Vielen Dank

0
Md. Abu Sayed 18 Jän. 2019 im 06:49

Sie können dies mit verschiedenen Methoden tun.

var arr = [{'id':4},{'id':5},{'id':7},{'id':8},{'id':9}], arrids=arr.map(e=>e.id);
var current_id = 5, prev_btn = $("#prev"), next_btn = $("#nex");
prev_btn.click(e=>{ 
  current_id--;
  var prevObj = arr[arrids.indexOf(current_id)] ? arr[arrids.indexOf(current_id)] : null;
  console.log(prevObj);
});
next_btn.click(e=>{
  current_id++;
  var nextObj = arr[arrids.indexOf(current_id)] ? arr[arrids.indexOf(current_id)] : null;
  console.log(nextObj);
})

Ändern Sie dies für Ihre Bedürfnisse.

1
Aaryan Adil 18 Jän. 2019 im 06:32

Sie können eine aktuell ausgewählte ID-Position in der globalen Variablen folgendermaßen einstellen: Für z.

let currentPos = 1;

Dann können Sie durch Klicken auf prevButton navigieren

arr [currentPos-1] & change currentPos = currentPos -1;

Und genauso für nextButton

arr [currentPos + 1] & change currentPos = currentPos + 1;

0
Kamalesh M. Talaviya 18 Jän. 2019 im 07:04

Versuchen Sie, mit der Jquery $.each -Schleife zu folgen

var current_id = '';
function Redirect(type)
{
if(current_id=='')
{
current_id=5;
}
var arr = [{'id':4},{'id':5},{'id':7},{'id':8},{'id':9}];    
   $.each(arr,function(i,ID){
   if(ID.id==current_id)
   {
   if(type=='Pre')
   {
   		if(i!=0)
   		{
   			current_id=arr[i-1].id;
            alert('Previous ID is : '+current_id);
            return false;//This Return false is for break "$.each" loop
   		}
   } 
   else if(type=='Next')
   {
   if(i!=arr.length-1)
   		{
   			current_id=arr[i+1].id;
            alert('Next ID is : '+current_id);
            return false;//This Return false is for break "$.each" loop
   		}
   }
   }
   });
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button onclick="Redirect('Pre')">Previous</button>
<button onclick="Redirect('Next')">Next</button>
0
Som 18 Jän. 2019 im 06:31