id只能一个页面有一个相同的值,你放到forEach循环里面,页面出现了多个,只有第一个有用,因此 下面的都是无效的
你应该
把每个id都加上序号,如
<c:forEach items="${signBusList}" var="sign" varStatus="xh">
如<tr id="no${xh.index}"></cforEach>
你应该
把每个id都加上序号,如
<c:forEach items="${signBusList}" var="sign" varStatus="xh">
如<tr id="no${xh.index}"></cforEach>
ie下可以,ff就不行了 <TABLE id="tab" border="1">
<TR>
<TH>名称</TH>
<TH>数量</TH>
<TH>盘点</TH>
<TH>损益</TH>
</TR>
</TABLE>
var tab = document.getElementById("tab");\
//模拟从数据库中取数据画表格
var arr = [["商品1",2000], ["商品2",500]];
for (var i=0; i<arr.length; i++)
{
var newrow = tab.insertRow();
var newcell = newrow.insertCell();
newcell.innerHTML = arr[i][0]; //名称
newcell = newrow.insertCell();
newcell.innerHTML = arr[i][1]; //数量
newcell = newrow.insertCell();
newcell.innerHTML = "<input type='text' onchange='fun(this)'>"; //盘点
newcell = newrow.insertCell();
newcell.innerHTML = "<input type='text'>"; //损益
}
//计算
function fun(obj) {
//损益是盘点input(obj)的父元素(parentNode)的下个兄弟元素(nextSibling)的第一个子元素(childNodes[0])
var sy = obj.parentNode.nextSibling.childNodes[0];
sy.value = parseInt( obj.parentNode.previousSibling.innerHTML ) - obj.value;
}
这里要么在tr用class + 编号 或者通过 tr 的下标
如果这样的话,它这个id怎么调用?
还这样吗:var index = document.getElementById("no${index}").innerHTML;
如果这样的话,${index}是读不出来的。
运行结果还是只能读取第一行的数据。