jQuery 单击单元格更改为文本框

2023-12-13

我一直在 Google 和 StackOverflow 上查找,但到目前为止还没有找到我想要的东西。如果有人能指出我正确的方向,那就太好了。

我有一张 5 行的表

<tr>
    <th scope="row" class="table-check-cell"><input type="checkbox" name="selected[]" id="table-selected-1" value="1"></th>
    <td>123456</td>
    <td>Address 1</td>
    <td>10th Feb 2011 (10:43am)</td>
    <td><ul class="keywords">
        <li class="pink-keyword">Awaiting Reply</li>
        <li class="purple-keyword">Direct</li>
        </ul>
    </td>
    <td>(Notes Text)</td>
    <td>1</td>
    <td class="table-actions">
        <a href="#" title="View" class="with-tip"><img src="images/magnifier.png" width="16" height="16"></a>
        <a href="#" title="Edit" class="with-tip"><img src="images/pencil.png" width="16" height="16"></a>
        <a href="#" title="Validate" class="with-tip"><img src="images/navigation.png" width="16" height="16"></a>
        <a href="#" title="Close" class="with-tip"><img src="images/cross-circle.png" width="16" height="16"></a>
    </td>
</tr>

我想要做的是能够编辑<td>(Notes Text)</td>单击表格单元格中的值,使其更改为输入框(当前显示单元格中的内容),以便可以通过单击它来再次编辑和保存它。

我对 jQuery 有(非常)基础的了解,但对使用 PHP / MySQL 进行更新方面很满意。

任何帮助都会很棒。

Thanks


一种可能的方式:

$('td:contains("(Notes Text)")').click(

  function() {
    var text = $(this).text();
    $(this).text('');
    $('<textarea />').appendTo($(this)).val(text).select().blur(

      function() {
        var newText = $(this).val();
        $(this).parent().text(newText).find('textarea').remove();
      });
  });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js"></script>
<table>
  <tbody>
    <tr>
      <th scope="row" class="table-check-cell">
        <input type="checkbox" name="selected[]" id="table-selected-1" value="1" />
      </th>
      <td>123456</td>
      <td>Address 1</td>
      <td>10th Feb 2011 (10:43am)</td>
      <td>
        <ul class="keywords">
          <li class="pink-keyword">Awaiting Reply</li>
          <li class="purple-keyword">Direct</li>
        </ul>
      </td>
      <td>(Notes Text)</td>
      <td>1</td>
      <td class="table-actions">
        <a href="#" title="View" class="with-tip">
          <img src="image/magnifier.png" width="16" height="16" />
        </a>
        <a href="#" title="Edit" class="with-tip">
          <img src="images/pencil.png" width="16" height="16" />
        </a>
        <a href="#" title="Validate" class="with-tip">
          <img src="images/navigation.png" width="16" height="16" />
        </a>
        <a href="#" title="Close" class="with-tip">
          <img src="images/cross-circle.png" width="16" height="16" />
        </a>

      </td>
    </tr>
  </tbody>
</table>

虽然上述方法有效,但我衷心建议将课程应用于td您希望能够编辑的元素(假设您希望能够编辑多个单元格)。

如果失败:你可以使用contentEditablehtml 中的属性:

<table>
  <tbody>
    <tr>
      <th scope="row" class="table-check-cell">
        <input type="checkbox" name="selected[]" id="table-selected-1" value="1" />
      </th>
      <td>123456</td>
      <td>Address 1</td>
      <td>10th Feb 2011 (10:43am)</td>
      <td>
        <ul class="keywords">
          <li class="pink-keyword">Awaiting Reply</li>
          <li class="purple-keyword">Direct</li>
        </ul>
      </td>
      <td contentEditable>(Notes Text)</td>
      <td>1</td>
      <td class="table-actions">
        <a href="#" title="View" class="with-tip">
          <img src="image/magnifier.png" width="16" height="16" />
        </a>
        <a href="#" title="Edit" class="with-tip">
          <img src="images/pencil.png" width="16" height="16" />
        </a>
        <a href="#" title="Validate" class="with-tip">
          <img src="images/navigation.png" width="16" height="16" />
        </a>
        <a href="#" title="Close" class="with-tip">
          <img src="images/cross-circle.png" width="16" height="16" />
        </a>
      </td>
    </tr>
  </tbody>
</table>

Edited回答OP的问题(在评论中):

另一个微小的(我希望)问题是,有没有办法让它不再是一个textarea to and input?

是的;这很容易完成:

$('td:contains("(Notes Text)")').click(
  function() {
    var text = $(this).text();
    $(this).text('');
    $('<input type="text" />').appendTo($(this)).val(text).select().blur(
      function() {
        var newText = $(this).val();
        $(this).parent().text(newText), find('input:text').remove();
      });
  });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js"></script>
<table>
  <tbody>
    <tr>
      <th scope="row" class="table-check-cell">
        <input type="checkbox" name="selected[]" id="table-selected-1" value="1" />
      </th>
      <td>123456</td>
      <td>Address 1</td>
      <td>10th Feb 2011 (10:43am)</td>
      <td>
        <ul class="keywords">
          <li class="pink-keyword">Awaiting Reply</li>
          <li class="purple-keyword">Direct</li>
        </ul>
      </td>
      <td>(Notes Text)</td>
      <td>1</td>
      <td class="table-actions">
        <a href="#" title="View" class="with-tip">
          <img src="image/magnifier.png" width="16" height="16" />
        </a>
        <a href="#" title="Edit" class="with-tip">
          <img src="images/pencil.png" width="16" height="16" />
        </a>
        <a href="#" title="Validate" class="with-tip">
          <img src="images/navigation.png" width="16" height="16" />
        </a>
        <a href="#" title="Close" class="with-tip">
          <img src="images/cross-circle.png" width="16" height="16" />
        </a>
      </td>
    </tr>
  </tbody>
</table>

请注意更改自$('<textarea />') to $('<input type="text" />')虽然type属性可能不是strictly需要(因为input元素默认为type="text"反正)。还有find('input:text').

参考:

  • appendTo().
  • blur().
  • click().
  • find().
  • parent().
  • remove().
  • select().
  • text().
  • val().
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jQuery 单击单元格更改为文本框 的相关文章

  • 在 Magento 中使用缩略图切换基本图像

    在定制的产品视图页面上 我正在处理基本图像 大图像 和缩略图列表 这些缩略图是与媒体库中的产品相关的其他图像 它们只是普通图像 而不是定义的图像 缩略图 我的任务是获取它 以便当您单击缩略图时它会更改上面的基本图像 我已经可以工作了 但是我
  • 与现有表单完美集成的多文件上传器

    我知道这个问题可能太笼统了 但在花了一整天的时间思考这个问题之后 我对这个问题感到非常困惑 任何人都知道上传插件 那会与现有形式轻松集成 我尝试过的所有上传器插件 jQuery 文件上传 Plupload Uploadify Dropzon
  • 判断jQuery是否没有找到任何元素

    我正在使用 jQuery 的选择器 尤其是 id 选择器 elementId 我该如何判断 jQuery 是否找到了该元素 即使具有指定 id 的元素不存在 下一条语句也会给出 object Object alert idThatDoesn
  • JQuery / Flickr API 获取照片集的问题

    我一直在尝试构建一个通过 Flickr 管理的相册系统 过去一天左右我一直在使用 Flickr API 并编写了以下代码 但它只是没有返回预期的 HTML insetad 我在浏览器中收到上面一行的错误 images html theHtm
  • jQuery mouseover 显示隐藏的 div 并显示 div(如果鼠标仍在 div 上)

    我的鼠标悬停和鼠标移出功能有问题 当我将鼠标悬停在链接上时 它会显示隐藏的 div 当我将鼠标移出 div 时 它会隐藏该 div 问题是 如果我将鼠标悬停在链接上 然后将鼠标移动到不在 div 上方的其他位置 div 不会消失 如果我使用
  • jQuery:在 jQuery 对象中存储附加/额外的数据/信息?

    在 jQuery 对象中存储额外的数据是否可能且明智 现在我有包含一些数据的对象 但这些对象也有该数据的视觉表示 这可行 但我有很多代码来保持它们同步 例如 如果您从 dom 中删除一个对象 我还必须从对象数组中删除相关对象 删除相当简单
  • 在 Bootstrap 3 中的工具提示中添加换行符

    我正在使用 Bootstrap 3 并向我的 div 添加了一个工具提示 我尝试过使用 n 和 创建新行 Bootstrap 会阻止我吗 div class content show tooltip 你需要添加data html true
  • Web API 复杂参数属性均为 null

    我有一个 Web API 服务调用可以更新用户的首选项 不幸的是 当我从 jQuery ajax 调用中调用此 POST 方法时 请求参数对象的属性始终为 null 或默认值 而不是传入的值 如果我使用 REST 客户端调用相同的方法 我使
  • 使用 Javascript 编辑和保存用户 HTML - 安全性如何?

    例如我有一个Javascript 支持的表单创建工具 您可以使用链接添加元素的 html 块 如输入字段 并使用 TinyMCE 来编辑文本 这些是通过自动保存功能保存的 该功能在特定事件的后台执行 AJAX 调用 被调用的保存函数负责数据
  • fancybox iframe 尺寸

    在 fancybox 主页 http fancybox net home http fancybox net home 有一个示例 打开一个尺寸为屏幕 75 的 iFrame 我无法通过修改 js 文件上的宽度和高度属性来获取它 如网站上所
  • 通过 jquery,设置为 html-select 元素的选项,通过文本而不是值选择属性

    我有一个选择元素
  • 如何更改单选按钮的默认外观而不是功能?

    在表单上我有两个单选按钮Yes and No 我想更改单选按钮的默认外观 喜欢这个 Edit 我想改变radio按钮进入 a 如果通过 CSS 更改默认单选按钮的外观并不容易 则在启用 JavaScript 时锚定 最简单的方法 将图像设置
  • 在 Chrome 上使用 display:none 重置 GIF 动画的正确方法

    标题是不言自明的 但我将提供对此事的逐步看法 希望我不是第一个注意到 Webkit Chrome 上这个 显然 错误的人 我想重置 GIF 动画 到目前为止我看到的所有例子要么简单地设置src图像本身或将其设置为空字符串 后跟原始图像src
  • jquery 在同一链接上显示和隐藏单击

    我有一个 div 我想在链接单击时显示和隐藏 不是显示和隐藏两个不同的链接 而是只有一个 我已经使用了toggle 但它对我不起作用 这是代码 a show hide a div div style width 49 div div sty
  • ajax 成功后循环 JSON 响应

    抱歉 这是重复的here https stackoverflow com questions 733314 jquery loop over json result from ajax success问过 但我对此很陌生 所以我想知道该怎么
  • 使用 word_number 值对 javascript 数组进行排序

    如何对数组进行排序 var arr new Array word 12 word 59 word 17 这样我得到 word 12 word 17 word 59 Thanks 您需要编写一个排序方法 您可以编写任何您喜欢的方法 该方法在
  • jQuery UI 对话框使用 setTimeout 自动关闭

    我试图让对话框在打开后三秒自动关闭 我尝试过以下方法 setTimeout mydialog dialog close 3000 这是在上下文中 acknowledged dialog dialog height 140 modal tru
  • jQuery 问题:它的真正含义是什么?

    function window undefined jquery code jQuery window 它到底意味着什么 是不是也意味着 document ready 或者只是两种不同的东西 已经有两个答案 但这是我对代码缺失端的猜测 fu
  • jQuery live() 和ready() 之间的区别?

    两者之间的确切区别是什么live and ready 编辑 发现die http docs jquery com Events die是相反的live ready http docs jquery com Events ready让你注册一
  • JQuery Mobile - 内联显示 HTML 表单

    Goal 在 Jquery Mobile 中的同一行显示文本框和提交按钮 Problem 它们不会显示在同一行 我曾多次尝试在同一行显示文本框和提交按钮 但它从未起作用 这是我的代码和我使用的组合

随机推荐

  • 如何获取 Go html/template 中地图元素的结构字段?

    我有一个结构Task type Task struct cmd string args string desc string 我初始化了一张采用上述内容的地图Taskstruct 作为一个值和一个string作为键 任务名称 var tas
  • html 中真的需要 name 属性吗? [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 如果 HTML 表单中 name 属性的目的只是为了引用诸如 input 之类的元素 为什么我们不能简单地使用 id 或 class 属性呢 创建名称属性背后是否有一些不那么明显的推
  • CodeIgniter Sqlite 不工作

    每当我在模型中像这样查询数据库 sqlite 时 我使用 codeigniter 完整代码如下 this gt db gt select post query this gt db gt get posts return query gt
  • 如何提取不起作用的 .apk 文件的代码? [复制]

    这个问题在这里已经有答案了 实际上 我试图提取名为 cloudfilz apk 的 apk 文件的代码 并希望在其源代码中进行操作 因此我按照以下步骤操作 创建一个新文件夹并放入 apk 文件 您要解码的 现在用扩展名 zip 重命名此 a
  • 将字体导入 GUI

    除了 swing 似乎附带的基本 5 种字体之外 我正在尝试更改 GUI 的字体 如何导入字体并在我的代码中实际使用它们 默认情况下通常有 5 个以上可用 但它们会因系统而异 该答案检查现有字体 以及如何加载和注册新字体 它使用 Airac
  • Java 的迁移[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我使用 ruby on Rails 和 Java 当我从事 Rails 项目时 我真的很喜欢使用迁移 所以我想知道是否有类似 Java 的迁移工具
  • 我应该为 Selenium By.XPATH 导入什么?

    新版本的 Selenium 没有任何旧方法 例如 find element by xpath 但它引入了新的 fabrique 方法 find element By XPATH searched string 这是来自的示例文档 veget
  • 多种语言一起编译

    是否可以将多种语言一起编译 以便充分利用不同语言的优点 绝对有可能link如果编译器和链接器全部兼容 则在单独编译它们之后将它们放在一起 如果适当编程 例如 g77 c one f gcc c two c gcc o together on
  • 可变参数模板异构容器

    我需要使用异构元素实现一些可变模板容器类 它允许迭代这些元素 我的第一个想法是使用带有可变参数的 std tuple 成员创建类 但是通过类似数组的方式 通过循环 从元组获取元素是不可能的 struct A void prnt std co
  • 如何在 VB6 中使用 MSHTML 解析器去除所有 HTML 标签?

    如何在 VB6 中使用 MSHTML 解析器去除所有 HTML 标签 这是改编自 CodeGuru 的代码 非常感谢原作者 http www codeguru com vb vb internet html article php c481
  • WriteFile 返回错误 1784

    我正在创建一个程序来使用虚拟文件系统填充磁盘 目前 我正在使用编写可变大小的文件WriteFile WriteFile hFile FileData i 1024 dwWrote NULL err GetLastError 错误返回 178
  • 防止WebView显示“网页不可用”

    我有一个广泛使用 WebView 的应用程序 当此应用程序的用户没有互联网连接时 会出现一个页面 显示 网页不可用 和各种其他文本 有没有办法不在我的 Web 视图中显示此通用文本 我想提供我自己的错误处理 private final Ac
  • LINQ to Entities 无法识别“System.DateTime Parse(System.String)”方法

    我是 Linq 的新手 下面的查询不断返回 无法识别 System DateTime 错误 我尝试过解析和转换 但都不起作用 这是我的查询 mrcEntities 上下文 GetContext var query from c in con
  • 将自定义产品排序设置为默认 Woocommerce 排序选项

    在 Woocommerce 中 我使用以下代码按修改日期向商店目录添加自定义排序选项 add filter woocommerce get catalog ordering args enable catalog ordering by m
  • 单独的日期和时间对象

    我有一个网络表单 用户可以从日历弹出窗口中选择日期 从下拉列表中选择时间 目前我正在尝试使用 Date 对象存储日期 Required public Date date 该对象的输出类似于 1970 年 1 月 1 日 00 00 00 G
  • 发布附件 Facebook Graph API

    现在我正在尝试弄清楚如何使用 facebooks graph api 发布附件 现在我正在使用 attachment array message gt POST tt text gt Download name gt name href g
  • 如何将 long 转换为字符串?

    我需要将很长的推文 ID 转换为字符串 例如 我有 id 39685855740174336 But var dump id prints float 3 9685855740174E 16 我尝试使用获取字符串值strval var du
  • T-SQL - 接收两个数字之间的差距

    我正在使用 SQL Server 2012 我收到了 最大数量 f e 201900005 这告诉我范围从 201900000 开始 这是给定的 现在我想收到这个范围内缺少的数字 我已经查看了几个与此相关的问题 但我似乎无法让它发挥作用 通
  • 正在进行的赋值语句的效率是多少-4gl

    为什么使用赋值语句比不使用赋值更有效 同事们说 assign a 3 v 7 w 8 比以下方法更有效 a 3 v 7 w 8 why 你总是可以自己测试一下 但是 是的 它的效率稍微高一些 或者这是我最后一次测试它 原因是编译器合并了语句
  • jQuery 单击单元格更改为文本框

    我一直在 Google 和 StackOverflow 上查找 但到目前为止还没有找到我想要的东西 如果有人能指出我正确的方向 那就太好了 我有一张 5 行的表 tr th class table check cell th tr