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
Was ist der Fehler? –
Warum erstellen Sie ** ** kein ausführbares Beispiel? – Amit
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