【发布时间】:2021-04-06 10:23:45
【问题描述】:
我正在尝试创建一个能够格式化单元格文本的电子表格,例如让它大胆。当信息可用于该单元格时,我还需要可以显示每个单元格的信息框。我将信息框创建为每个 td 中的 div,默认情况下它们是隐藏的。
我目前格式化每个单元格文本的方式是将一个类应用于 td.这将格式化文本,但也会格式化信息框中的文本,这是我不想要的。
我一直在考虑将 textNode 中的文本包装在一个跨度中,然后仅将格式化类应用于该跨度。只要跨度中有文本,写入单元格中的新文本也将在跨度内。但是当单元格中的所有文本都被删除并写入新文本时,新文本会在新的 textNode 中创建,而不是在 span 中创建,尽管 span 仍然存在。这意味着,新写入的文本不会被格式化。
对这个问题的最佳解决方案有什么建议吗?有没有办法让输入默认出现在跨度中或类似的东西?
我的单元格外观示例:
<td id="cell-4-5" contenteditable="true">Test<div class="infoBox" contenteditable="false" style="display: none;"></div></td>
【问题讨论】:
-
创建一个自定义函数,它会返回一个新创建的
spanput,这将是一个包裹在 span 元素中的输入元素。 -
我不相信tds正常有输入元素?但是我尝试使用 et input = $('') let span = $('') span.append(input) cell.append(span) 这使得电子表格需要永远加载,而且它也看起来很奇怪。
-
你的标题说单元格中有输入......但是现在在你编辑了问题之后,看起来你实际上有可编辑的单元格。将跨度添加到单元格中,并使跨度而不是单元格本身可编辑。
-
是的,没有很好的解释。不过谢谢,它奏效了。
标签: javascript html css text html-table