我正在尝试替换在动态创建的表的每一行上都相同的 div 标签。我不知道该怎么做。现在我可以使用该功能,但它只替换了 div 标签的第一行。这是我的代码:
<script type="text/javascript">
function Calc() {
var qty = 0;
qty=parseInt(document.getElementById('qtyEntry').value);
var weight = parseInt(document.getElementById('weight').innerHTML);
var cube = parseInt(document.getElementById('cube').innerHTML);
var carton = parseInt(document.getElementById('carton').innerHTML);
var newWeight = 0;
var newCube = 0;
var newCarton = 0;
newWeight = qty *weight ;
newCube = qty * cube;
newCarton = qty * carton;
document.getElementById('weight').innerHTML = newWeight;
document.getElementById('cube').innerHTML = newCube;
document.getElementById('carton').innerHTML = newCarton;
}
@{int seq=0;
foreach (var item in Model)
{
seq++;
<tr>
<td>@seq</td>
<td>@item.sku</td>
<td>@item.description</td>
<td><input type=text id="qtyEntry" name="buildQty" size="3" onchange="Calc()"/></td>
<td> <div id="carton">@item.cartonQty</div></td>
<td> <div id="weight">@item.weight</div></td>
<td><div id="cube">@item.cube</div></td>
<td></td>
</tr>
}
}
所以基本上我想在用户更改 buildQty 的文本字段时更新纸箱、重量和立方体数量。我希望每一行都更新。现在只有第一行更新,即使我正在更新另一行的文本。
最佳答案
明显的问题:id
应该是唯一的。你的不是。所以它只访问第一个。试试这个作为改变:
标记:
<tr>
<td>@seq</td>
<td>@item.sku</td>
<td>@item.description</td>
<td><input type=text id="qtyEntry@(seq)" name="buildQty@(seq)" size="3" onchange="Calc(@(seq))"/></td>
<td> <div id="carton@(seq)">@item.cartonQty</div></td>
<td> <div id="weight@(seq)">@item.weight</div></td>
<td> <div id="cube@(seq)">@item.cube</div></td>
<td></td>
</tr>
js:
function Calc(seq) {
var qty = 0;
qty=parseInt(document.getElementById('qtyEntry'+seq).value);
var weight = parseInt(document.getElementById('weight'+seq).innerHTML);
var cube = parseInt(document.getElementById('cube'+seq).innerHTML);
var carton = parseInt(document.getElementById('carton'+seq).innerHTML);
var newWeight = 0;
var newCube = 0;
var newCarton = 0;
newWeight = qty *weight ;
newCube = qty * cube;
newCarton = qty * carton;
document.getElementById('weight'+seq).innerHTML = newWeight;
document.getElementById('cube'+seq).innerHTML = newCube;
document.getElementById('carton'+seq).innerHTML = newCarton;
}
但是请注意!这可能会改变您的模型绑定(bind),您将需要重新审视您从帖子中接受它的方式。我认为它没有像现在这样正确发布,因为 name
也不是唯一的(这是与模型绑定(bind)有关的部分)。
关于javascript - 替换表格每一行的所有div标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14367259/