javascript - 单击时将表格单元格从跨度更改为输入

标签 javascript jquery

我试图在点击时将表格单元格从“span”类型更改为“input”,然后在模糊时返回“span”,但它无法按照此处给出的方式工作:

Convert table cells to text-boxes with JQuery

这是 JavaScript 代码:

    <script type="text/javascript">
        $(document).ready(function() {
            $('#assets').click(function () {
                $('tr td:nth-child(3)').each(function () {
                    var html = $(this).html();
                    var input = $('<input type="text" />');
                    input.val(html);
                    $(this).html(input);
                });
            });
        });
    </script>

这是文档正文

<body>
    <div id="content">
        <table id="assets">
            <tr>
                <td class="asset_name"><span>Name</span></td>
                <td class="asset_value"><span>ast1</span></td>
                <td class="asset_name"><span>Location</span></td>
                <td class="asset_value"><span>Loc-1</span></td>
            </tr>
            <tr>
                <td class="asset_name"><span>Name</span></td>
                <td class="asset_value"><span>ast2</span></td>
                <td class="asset_name"><span>Location</span></td>
                <td class="asset_value"><span>Loc-2</span></td>
            </tr>
        </table>​
    </div>
</body>

使用 jQuery 1.7.2

这里出了什么问题?请帮忙!

谢谢!!

更新:只需更改 class='asset_value' 的单元格,并且一次仅更改一个单元格,而不是全部。另外,它应该在模糊时变回跨度..

最佳答案

试试这个:

$(document).ready(function() {
    $('#assets').on('click', 'span', function() {
        var $e = $(this).parent();
        if($e.attr('class') === 'asset_value') {
            var val = $(this).html();
            $e.html('<input type="text" value="'+val+'" />');
            var $newE = $e.find('input');
            $newE.focus();
        }
        $newE.on('blur', function() {
            $(this).parent().html('<span>'+$(this).val()+'</span>');
        });
    });
});​

这将在单击时更改单个单元格并在模糊时恢复为跨度。

关于javascript - 单击时将表格单元格从跨度更改为输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11882693/

相关文章:

javascript - 递归函数和这个 D3.JS

javascript - 使用 ng-class 单击按钮再次生成动画。 Angular .js

javascript - jQuery click() 不起作用。实在不明白

jquery - 链接标题标签通过 ajax 悬停元素显示

javascript - 两列 DIV

javascript - 在div标签中插入省略号(...),如何为其添加功能

javascript - 如何计算滚动条的宽度?

javascript - 如何通过暂停前一个实例来再次播放相同的声音?

javascript - 访问没有点和一对括号的变量(parent.child.grandchild)的孙子

javascript - jQuery 鼠标悬停事件处理程序不工作或被检测到