2016-04-08 7 views
-1

ich einen Beitrag benutzen ich auf Stackoverflow gefunden my own "struct Schöpfer" zu schaffen, aber es scheint nicht zu funktionieren, ich verstehe nicht, warum ...Erstellen von Struktur in Javascript

function makeStruct(names) { 
    var names = names.split(' '); 
    var count = names.length; 
    function constructor() { 
     for (var i=0; i<5; i++) { 
      this[names[i]] = arguments[i]; 
     } 
     for (var i = 5; i < count; i++) { 
      this[names[i]] = getFloat(arguments[i-4]); 
     } 
    } 
    return constructor; 
} 

Hier ist die Erklärung: i Habe 9 Wert: die 5 ersten sind ID Die 4 nächsten sind der Wert in der letzten 4 ID. Hier ist ein exemple von dem, was ich tun wollte:

var A = makeStruct("a b c d e b_value c_value d_value e_value"); 
var B = new A(id1, id2, id3, id4, id5); 

So konnte B speichern die 5-ID und den Wert von ID2 ID5 ... aber es funktioniert einfach nichts :(

Ich weiß, es ist ganz einfach, aber ich bin nicht wirklich gut in javascript ...

Dank

EDIt: fügen Sie einige Code

function getFloat(uneID) { 
    var d = document.getElementById(uneID); 
    var r = 0; 
    if (d) {//not null 
     d = document.getElementById(uneID).value; 
     if(d){//not undefined 
      r = parseFloat(d.replace(",", ".")); 
      r = isNaN(r) ? 0 : r; 
     } 
    } 
    return r; 
} 

function makeStruct(names) { 
    var names = names.split(' '); 
    var count = names.length; 
    function constructor() { 
     for (var i=0; i<5; i++) { 
      this[names[i]] = arguments[i]; 
     } 
     for (var i = 5; i < count; i++) { 
      this[names[i]] = getFloat(arguments[i-4]); 
     } 
    } 
    return constructor; 
} 

var Aliment = makeStruct("qtt glu pro lip cal gluv prov lipv calv"); 
var dej = new Aliment('<%=frmAlim.FindControl("QTTdej1").ClientID %>', 
    '<%=frmAlim.FindControl("GLUdej1").ClientID %>', 
    '<%=frmAlim.FindControl("PROdej1").ClientID %>', 
    '<%=frmAlim.FindControl("LIPdej1").ClientID %>', 
    '<%=frmAlim.FindControl("CALdej1").ClientID %>')); 

Und ich möchte meine Variable "dej" haben, wie folgt aus:.

dej.qtt = '<%=frmAlim.FindControl("QTTdej1").ClientID %>' 
dej.glu = '<%=frmAlim.FindControl("GLUdej1").ClientID %>' 
dej.pro = '<%=frmAlim.FindControl("PROdej1").ClientID %>' 
dej.lip = '<%=frmAlim.FindControl("LIPdej1").ClientID %>' 
dej.cal = '<%=frmAlim.FindControl("CALdej1").ClientID %>' 
dej.gluv = getFloat('<%=frmAlim.FindControl("GLUdej1").ClientID %>') 
dej.prov = getFloat('<%=frmAlim.FindControl("PROdej1").ClientID %>') 
dej.lipv = getFloat('<%=frmAlim.FindControl("LIPdej1").ClientID %>') 
dej.calv = getFloat('<%=frmAlim.FindControl("CALdej1").ClientID %>') 

Mein Problem ist, dass alle dej * v gleich 0

+0

Was ist der Fehler? –

+0

Warum erstellen Sie ** ** kein ausführbares Beispiel? – Amit

+0

Wenn Sie alle referenzierten Variablen definieren, scheint es hier zu laufen: https://jsfiddle.net/jfriend00/es44ofkw/. Sie sagen nicht, was der Zweck dieses Codes ist, also habe ich keine Ahnung, was Sie davon erwarten. – jfriend00

Antwort

0

Nun scheint es, dass ASP wiederum Labels in Span. So offensichtlich, in Javascript, die ".value" -Methode gibt nicht den Wert in der span.

Verwenden Sie stattdessen InnerHTML! :)

Verwandte Themen