我使用了在stackoverflow上找到的帖子来创建我自己的" struct creator",但它似乎不起作用,我不明白为什么......
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;
}
以下是解释:我有9个值:第一个是ID 接下来的4是最后4个ID中的值。 这是我想做的事例:
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);
所以B可以将5 ID和id2的值存储到id5 ......但它什么都不做:(
我知道这很简单,但我在javascript中并不是很好......
谢谢!
EDIt:添加一些代码
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 %>'));
我想要变量&#34; dej&#34;那样:
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 %>')
我的问题是所有的dej。* v都等于0
答案 0 :(得分:0)
好吧,似乎ASP在Span中变成了标签。显然,在javascript中,&#34; .value&#34;方法不会返回跨度中的值。
使用InnerHTML代替! :)