2016-06-09 14 views
0

Okay, so habe ich ein Zensurbuch der Art erstellt. Sie fügen in Ihrem Vor- und Nachnamen, und der Grad, und es fügt sie an den Tisch (es funktioniert, wenn ich auf Chrome laufen, aber nicht auf jsfiddle aus irgendeinem Grund. Das ist nicht das Thema)Bestellen Sie ein Array Probleme

https://jsfiddle.net/bhLhayar/

Das Problem, das ich habe, ist mit der Sortierung. Meine Optionsfelder sagen "nicht definiert", aber ich dachte, ich hätte sie in meinem JS definiert. Ratschlag bitte? XD

function sortby(what){ 
if(what == 'firstN'){studentdata.sortbyfirstSet();} 
if(what == 'lastN'){studentdata.sortbylastSet();} 
if(what == 'gradeUp'){studentdata.sortbygradeSetUp();} 
if(what == 'gradeDown'){studentdata.sortbygradeSetDown();} 
updatetable() 
} 

Hier ist der Code, wo ich denke, dass ich falsch gelaufen bin ?. Hat damit zu tun:

sortbyFirstSet(){ 
     this.data.sort(function (one, two){ 
      if(one.firstName > two.firstName){return 1} 
      if(one.firstName < two.firstName){return -1} 
      if(one.firstName == two.firstName){return 0} 
     }); 
    } 
    sortbylastSet(){ 
     this.data.sort(function (one, two){ 
      if(one.lastName > two.lastName){return 1} 
      if(one.lastName < two.lastName){return -1} 
      if(one.lastName == two.lastName){return 0} 
     }); 
    } 
    sortbygradeSetUp(){ 
     this.data.sort(function (one, two){ 
      if(one.finalGrade > two.finalGrade){return 1} 
      if(one.finalGrade < two.finalGrade){return -1} 
      if(one.finalGrade == two.finalGrade){return 0} 
     }); 
    } 
    sortbygradeSetDown(){ 
    this.data.sort(function (one, two){ 
     if(one.finalGrade < two.finalGrade){return 1} 
     if(one.finalGrade > two.finalGrade){return -1} 
     if(one.finalGrade == two.finalGrade){return 0} 
    }); 
    } 
+1

Von welchen Radioknöpfen sprechen Sie? Ich sehe überhaupt keinen HTML-Code. –

+0

Ich legte einen Link für jsfiddle.net – JHillman

+0

In der JsFiddle zumindest scheint es, dass keine der 'onclick =" "' Attribute richtig funktionieren. Die Verwendung von '.addEventListener' funktioniert mindestens für die Schaltfläche' Info Submit'. –

Antwort

1

Sie scheinen in einer Zeichenfolge als Variable übergeben. Versuchen Sie stattdessen onclick = "sortby ('lastN')" usw.

Und Sie haben keine updatetable Funktion. Vielleicht wollten Sie updateGradebook() anrufen?

Aktualisieren Noch eine Sache, Ihr erster Aufruf der Sortiermethode ist falsch geschrieben. Sollte sortbyFirstSet sein

+0

Dies ist keine Antwort auf die Frage. –

+0

@TomBurris scheint es zu sein, da der Wert, den er in die Methode übergibt, undefiniert ist? – H77

+0

Haben Sie getestet, ob das Problem dadurch behoben wird? Leider nicht. Es gibt einige Probleme mit diesem Skript und eine Antwort sollte sie alle ansprechen. –

0

Bitte korrigieren Sie Ihren onclick Code auf Radiobuttons um sortby ('firstN') von sortby (firstN). Auch scheint es, dass studentdata ein Array ist und Sie versuchen, die sortby-Funktionen damit aufzurufen.

+0

Dies ist keine Antwort auf die Frage. –