我想基于其他单元格中的值(例如di和br)计算动态表格的每一行中的T1和T2的值。这些值作为一个整体将作为宏变量发送,以便在SAS程序中处理。在这种情况下,我可以选择输入或计算T1和T2的值。我是Javascript的新用户。我制作的代码如下。无论我如何尝试,我都无法将T1和T2的值写回表中。
<!DOCTYPE html>
<html>
<head>
<script language="javascript">
function addRow(dataTable){
var table=document.getElementById('dataTable');
var rowCount=table.rows.length;
var rowCount1=table.rows.length-1;
var row=table.insertRow(rowCount);
var cell01=row.insertCell(-1);var element01=document.createElement("input");element01.type="checkbox";element01.name="chkbox[]";cell01.appendChild(element01);
var cell02=row.insertCell(-1);var element02=document.createElement("text");element02.name="nr"; cell02.innerHTML=rowCount1+1;
var cell04=row.insertCell(-1);var element04=document.createElement("input");element04.type="text"; element04.name="di"; element04.id="di"; cell04.appendChild(element04);
var cell05=row.insertCell(-1);var element05=document.createElement("input");element05.type="text"; element05.name="br"; element04.id="br"; cell05.appendChild(element05);
var cell07=row.insertCell(-1);var element07=document.createElement("input");element07.type="text";element07.value="CRN"; element07.name="kurve"; element07.id="kurve"; cell07.appendChild(element07);
var cell27=row.insertCell(-1);var element27=document.createElement("input");element27.type="button";element27.value="send"; element27.onclick="Calculate()"; cell27.appendChild(element27);
var cell10=row.insertCell(-1);var element10=document.createElement("input");element10.type="text"; element10.name="T1"; element10.id="T1"; element10.style.height='16px'; cell10.appendChild(element10);
var cell11=row.insertCell(-1);var element11=document.createElement("input");element11.type="text"; element11.name="T2"; element11.id="T2"; cell11.appendChild(element11);
}
function deleteRow(dataTable){
var table=document.getElementById(dataTable);
var rowCount=table.rows.length;
for(var i=0;i<rowCount;i++){
var row=table.rows[i];
var chkbox=row.cells[0].childNodes[0];
if(null!=chkbox&&true==chkbox.checked){
table.deleteRow(i);rowCount--;i--;
}
}
}
function Calculate() {
var T1V = 0;
var di = table.getElementsById('di').innerHTML;
var br = table.getElementsById('br').innerHTML;
var T1V =(100+br/di)*1.1 ;
document.getElementById('T1').value=T1V;
}
</script>
</head>
<body>
<input type="button" value="add row" onclick="addRow('dataTable')">
<input type="button" value="remove row" onclick="deleteRow('dataTable')">
<table id="dataTable">
<thead>
<tr>
<th style="text-align:center;">   </th>
<th style="text-align:center;">nr.</th>
<th style="text-align:center;">Di</th>
<th style="text-align:center;">Br</th>
<th style="text-align:center;">Kurve</th>
<th style="text-align:center;">   </th>
<th style="text-align:center;">T1</th>
<th style="text-align:center;">T2</th>
</tr>
</thead>
</table>
</body>
</html>
答案 0 :(得分:0)
我认为这就是您所需要的:http://jsfiddle.net/ko4vgudu/6/
您需要为表中的元素指定唯一ID,之后您可以进行计算,并使用结果填写匹配的单元格。
function Calculate(el) {
var row_id = el.id;
var row_split1 = row_id.split('_')[1];
di = document.getElementById('di_'+row_split1).value;
br = document.getElementById('br_'+row_split1).value;
T1V = (100 + br / di) * 1.1;
document.getElementById('T1_'+row_split1).value = T1V;
T2V = (100 + br*1.1 / di) / 1.1;
document.getElementById('T2_'+row_split1).value = T2V;
};