首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >替换表中每行的所有div标签

替换表中每行的所有div标签
EN

Stack Overflow用户
提问于 2013-01-17 04:30:55
回答 1查看 329关注 0票数 3

我正在尝试替换一个div标记,该标记在动态创建的表的每一行上都是相同的。我不知道该怎么做。现在我可以让这个函数工作,但它只替换了第一行的div标记。下面是我的代码:

代码语言:javascript
运行
复制
<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;
}

代码语言:javascript
运行
复制
  @{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的文本字段时,我希望更新纸箱、重量和立方体数量。我希望每一行都更新。现在,即使我在更新另一行上的文本,也只更新第一行。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-17 04:37:41

突出的问题:id应该是唯一的。你的不是。所以它只访问第一个。试着这样改变一下:

标记:

代码语言:javascript
运行
复制
<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:

代码语言:javascript
运行
复制
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;
}

但请注意!这可能会改变你的模型绑定,你需要重新审视从你的帖子中接受这一点的方式。我假设它没有像现在这样正确发布,因为name也不是唯一的(这是与模型绑定有关的一部分)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14367259

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档