2017-05-31 2 views
0

Ich bin wirklich wirklich Neuling in Javascript und jquery. Ich mache jetzt einen Taschenrechner.Wie bekomme ich einen bestimmten Array-Wert aus dem Array von Schaltflächen

Dies ist mein Code.

<html> 
    <head> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
    <meta charset="UTF-8"> 
    <script type="text/javascript"> 
     var buttonname = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "+", "-", "*", "/", "C", "Enter", "="]; 
     $(document).ready(function() { 
     $("button").click(function() { 
      // for(var i=0;i<buttonname.length;i++){ 
      var arrayvalue = buttonname[ ? ? ? ? ? ]; 
      var calculate = $("<p>" + arrayvalue + "</p>"); 
      $("#result").append(calculate); 
      //} 
     }); 
     }); 

    </script> 
    </head> 

    <body> 
    <!--<textarea id="numberarea"></textarea><br>--> 
    <script type="text/javascript"> 
     for (var i = 0; i < buttonname.length; i++) { 
     document.write("<button>" + buttonname[i] + "</button>"); 
     if (i != 0 && (i % 4) == 0) 
      document.write("<br>"); 
     } 

    </script> 
    <div id="result"></div> 
    </body> 

</html> 

Wie soll ich mit der Linie zu tun var arrayvalue = buttonname[] oder mit Klick-Funktion einen bestimmten Wert aus dem Array in meinem Fall zu bekommen?

+0

'var arrayvalue = Button [x]' wo 'X' wird der spezifische Wert, den Sie abrufen möchten, ausgehend von 0. –

+1

Könnten Sie den Namen als anhängen Eigenschaft des Knopfes, damit Sie es so verweisen könnten? –

+0

'this.innerText' anstelle von' buttonname [?????] ''? Andernfalls speichern Sie es als 'Daten-Attribut '. Wenn Sie bestimmt sind, es mit dem Index zu referenzieren (indem Sie die 'buttonname [?]' -Syntax verwenden), müssten Sie irgendwie den Index der gedrückten Schaltfläche herausfinden, aber da er mit break-Tags eingebettet ist, ' ll viel mehr Arbeit als es wert ist. –

Antwort

2

Sie können jeder Schaltfläche ein Attribut hinzufügen, wenn Sie sie erstellen, und dann auf dieses Attribut aus dem Ereignisargument Ihres Klick-Handlers verweisen. Etwas wie folgt aus:

var buttonname = ["1","2","3","4","5","6","7","8","9","0","+","-","*","/","C","Enter","="]; 
 
$(document).ready(function(){ 
 
    $("button").click(function(ev){ 
 
    // for(var i=0;i<buttonname.length;i++){ 
 
     var arrayvalue = buttonname[$(ev.target).attr('data-index')]; 
 
     var calculate = $("<p>"+arrayvalue+"</p>"); 
 
     $("#result").append(calculate); 
 
    //} 
 
    }); 
 
}); 
 

 
for(var i = 0; i <buttonname.length; i++){ 
 
    document.write("<button data-index="+i+">"+buttonname[i]+"</button>"); 
 
    if(i != 0 && (i%4) == 0) 
 
    document.write("<br>"); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
 
<div id="result"></div>

+0

Danke! Funktioniert! Eigentlich verstehe ich nicht, was attr ('daten-index') jetzt bedeutet, aber du hast mich gerettet! – ProgramLover

+0

p.s. : Bedeutet ev in fuction etwas eventlistener in Java? e.getSource() .. – ProgramLover

+0

Sie können in der document.write Zeile sehen Ich setze ein Attribut auf der Schaltfläche HTML-Element: '"

Verwandte Themen