首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果编辑同一行中的另一个单元格,如何更改表格中某个单元格的文本?

如果编辑同一行中的另一个单元格,如何更改表格中某个单元格的文本?
EN

Stack Overflow用户
提问于 2017-01-25 19:35:27
回答 1查看 243关注 0票数 0

如果我编辑ab列中的单元格,那么c列中的值应该会更改。但是现在c中所有列的值都在改变。但我只需要在我进行更改的特定行中更改值。

代码语言:javascript
复制
$(".table").each(function () {
    $(this).find('.total').data('total',text);
    $(this).find('.total').text(text);
});


    // Editable Cells

    $(document).on('click', '.editable', function (event) {
        if ($(this).children("input").length > 0)
            return false;
        var tdObj = $(this);
        var preText = tdObj.html();
        var inputObj = $("<input type='text' />");
        tdObj.html("");
        inputObj.width(tdObj.width())
            .height(tdObj.height())
            .css({
                border: "0px",
                height: "25px",
                width: "50%",
            })
            .val(preText)
            .appendTo(tdObj)
            .trigger("focus")
            .trigger("select");
        inputObj.keyup(function (event) {
            if (13 == event.which) { // press ENTER-key
                var text = $(this).val();
                tdObj.html(text);
                $("table").each(function () {
                    $(this).find('.total').text(text);
                });

            } else if (27 == event.which) { // press ESC-key
                tdObj.html(preText);
            }
        });
        inputObj.click(function () {
            return false;
        });
        inputObj.blur(function (event) {
            tdObj.html(preText);
        });
    });
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table style="width:50%">
  <tr>
    <th>a</th>
    <th>b</th> 
    <th>c</th>
  </tr>
  <tr>
    <td class="editable">20</td>
    <td class="editable">30</td> 
    <td class="total">50</td>
  </tr>
  <tr>
    <td class="editable">10</td>
    <td class="editable">20</td> 
    <td class="total">94</td>
  </tr>
</table>

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-25 19:43:17

使用.closest('tr').find('.total')

代码语言:javascript
复制
$(document).ready(function() {
  $('.editable').keyup(function() {
    var sum = parseInt($(this).text())
           // select next .editable, that is not currently selected
           + parseInt($(this).closest('tr').find('.editable').not(this).text());

    $(this).closest('tr').find('.total').text(sum);
  })
});
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table style="width:50%">
  <tr>
    <th>a</th>
    <th>b</th>
    <th>c</th>
  </tr>
  <tr>
    <td class="editable" contenteditable="true">20</td>
    <td class="editable" contenteditable="true">30</td>
    <td class="total">50</td>
  </tr>
  <tr>
    <td class="editable" contenteditable="true">10</td>
    <td class="editable" contenteditable="true">20</td>
    <td class="total">94</td>
  </tr>
</table>

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

https://stackoverflow.com/questions/41850608

复制
相关文章

相似问题

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