jquery 用它的值替换每个输入。然后切换/切换回有输入

标签 jquery ajax dom dom-manipulation

我有一个由 AJAX 请求创建的表。每个 TD 内部都有一个文本框输入。这允许用户编辑内容。我想要一个“只读”模式,用户无法编辑内容(由用户自行决定)。为此,我希望用户能够按下一个按钮(单选按钮也可以),用包含文本框值作为其文本的

标记替换每个文本框输入。目前,我的代码将每个输入替换为文本“object Object”。 (也许我没有正确地将值转换为文本字符串?)任何让我知道出了什么问题的提示将不胜感激。谢谢!!

这是我当前的脚本:

<script type="text/javascript">
    $("#permissionsbutton").live('click',function(){
        sss = $('.cells').each(function(){$(this).val()});
        $(".cells").replaceWith("<p class='readonlycells' type='text'>" + sss + "</p>");
    });
    // if this worked, I would write another few lines
    // to be able to switch back to having inputs
</script>

这是 HTML 的一个片段:

<div id="readwrite" class="settings">
    <h3>Permissions</h3>
    <button id="permissionsbutton">Switch to Read Only Mode</button>
</div>
<table><tr>
    <td><input class='cells' type=text value='Steve'></td>
    <td><input class='cells' type=text value='Mary'></td>
    <td><input class='cells' type=text value='Big Bird'></td>
</tr></table>

最佳答案

jQuery 的 each 函数返回调用它的 jQuery 对象(在您的情况下是 $('cells') )。因此,您当前的代码正在将 .cells 选择器匹配的每个元素替换为 jQuery 对象,该对象序列化为“object Object”。

你想要的更像是

$("#permissionsbutton").live('click', function() {
    $(".cells").each(function() {
        $(this).replaceWith($(this).val());
    }
});

关于jquery 用它的值替换每个输入。然后切换/切换回有输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4341411/

相关文章:

jquery - 使用 mvc 2 和 jquery/ajax 进行流畅上传

javascript - XMLHttpRequest 获取具有动态内容的 DOM

javascript - 通过单击按钮从表中选择行并更新值

ruby-on-rails - Rails 中 ElasticSearch 和 AJAX 请求的 X-CSRF-Token 错误

javascript - 单击动画汉堡包按钮打开和关闭导航

javascript - 如何在jquery选择插件中选择不选择的文本

javascript - 将数据绑定(bind)到 DOM 的示例

jquery - 如何在父 div 内部、div 前面强制按钮。我尝试过 z-index 没有效果

javascript - 如何制作 $(this) 的 this?

javascript - 如何在 jQuery 中检查视网膜显示并相应地提供双分辨率图像?