2016-04-16 17 views
-3

Ich suche nach korrektem Code, so dass die Funktion namens "finder()" ausgeführt werden kann und den höchsten Wert in Array namens "sum" findet. Wenn Sie auf die Schaltfläche "Find Max" klicken, lautet das Ergebnis: "[object HTMLInputElement]" Vielen Dank für Ihre Hilfe! Hier ist Code:Wie finden Sie den größten Wert von Elementen in dieser Art von Array?

<html> 
    <head> 
    <title>Max</title> 
    <meta charset="utf-8"> 
    <script type="text/javascript"> 
     var sum = document.getElementsByName('addends'); 
     function add() { 
      var x = document.getElementById('apendiks'); 
      x.innerHTML+="<br/><input type='text' name='addends' size='7'>"; 
     } 

     function finder() { 
      var max = sum[0];   
      for(i=0; i<sum.length;i++){ 

       if(sum[i] > max){ 
        max = sum[i]; 
       }     
      } 

      document.getElementById('showMaxValue').innerHTML = max; 
     } 

     function gather() { 

      var total=0; 
      for(i=0; i < sum.length; i++){ 

       total+=parseFloat(sum[i].value); 
      } 
      document.getElementById('score').innerHTML = total; 
     } 
     </script> 
    </head> 
    <body> 
    <p><input type="button" onclick="add()" value="Add a new box"> </p> 
    <p><input type="button" onclick="" value="-"> </p> 

    <div id="apendiks"></div> 
    <p><input type="button" onclick="gather()" value="Total sum"> </p> 
    <p>Score: <b id="score"></b></p> 
    <p><input type="button" onclick="finder()" value="Find max"> </p> 
    <p id="showMaxValue"></p> 
    </body> 
</html> 
+0

was, wenn ich '398 eingegeben bekommen 49 fdr' in das Textfeld ''addends''? – RomanPerekhrest

+0

Sum [] ist ein Array von HTML-Eingabeobjekten. Ich denke, Sie versuchen, den Wert aus der Eingabe zu erhalten, aber stattdessen vergleichen Sie Eingabeelemente miteinander anstelle des Werts, den sie enthalten. – klog

+0

Mehrere Probleme ... siehe http://stackoverflow.com/questions/14028959/why-does-jquery-or-dom-method-such-as-geelementbyid-not-find-the-element – charlietfl

Antwort

0

var sum = document.getElementsByName ('Summa');

Diese Zeile wird Ihnen eine Liste der Knoten, nicht ein Array geben.

In Ihrer finder Methode, müssen Sie es als solche

function finder() 
    { 
     var max = paeseInt(sum[0].value) ; 
     for(i=0; i<sum.length;i++){ 
      if(parseInt(sum[i].value) > max && !isNaN(sum[i].value)){ //assuming that strings should be ignored 
       max = parseInt(sum[i].value) ; 
      } 
     } 
     document.getElementById('showMaxValue').innerHTML = max; 
    } 
+0

Was passiert, wenn ich '398-49fdr' in das Textfeld' adddens' eingegeben habe? – RomanPerekhrest

+0

Was sollte in diesem Fall die Ausgabe sein? – gurvinder372

+0

Welche Ausgabe wird Ihre Lösung mit diesem Eingabewert '-f0j381' geben? Wie denkst du ... – RomanPerekhrest

0

Verwendung zur Behandlung von .value den Wert des Eingabefeldes

<html> 
 
    <head> 
 
    <title>Max</title> 
 
    <meta charset="utf-8"> 
 
    <script type="text/javascript"> 
 
     var sum = document.getElementsByName('addends'); 
 
     function add() { 
 

 
      var x = document.getElementById('apendiks'); 
 

 
      x.innerHTML+="<br/><input type='text' name='addends' size='7'>"; 
 

 
     } 
 

 
     function finder() { 
 

 
      var max = sum[0].value; 
 

 
      for(i=0; i<sum.length;i++){ 
 

 

 

 
       if(sum[i].value > max){ 
 

 

 
        max = sum[i].value; 
 

 
       } 
 

 
      } 
 

 
      document.getElementById('showMaxValue').innerHTML = max; 
 
     } 
 

 

 

 

 

 
     function gather() { 
 

 

 

 
      var total=0; 
 
      for(i=0; i < sum.length; i++){ 
 

 
       total+=parseFloat(sum[i].value); 
 
      } 
 
      document.getElementById('score').innerHTML = total; 
 
     } 
 

 
     </script> 
 
    </head> 
 

 
    <body> 
 
    <p><input type="button" onclick="add()" value="Add a new box"> </p> 
 
    <p><input type="button" onclick="" value="-"> </p> 
 

 

 
    <div id="apendiks"></div> 
 
    <p><input type="button" onclick="gather()" value="Total sum"> </p> 
 
    <p>Score: <b id="score"></b></p> 
 
    <p><input type="button" onclick="finder()" value="Find max"> </p> 
 
    <p id="showMaxValue"></p> 
 
    </body> 
 
</html>

+0

Noch Strings vergleichen – charlietfl

Verwandte Themen