0

我有一个带有不同条目的长表,其中一些被标记为“xxx”。生成 html 代码时,带有 xxx 的行如下所示(由插件生成):

<td style="vertical-align:middle; text-align:center; border:2px solid #000000; width:504pt; height:29pt" colspan="12">xxx</td>

我想将其更改为具有相同尺寸的文本区域,这样它就不会扭曲表格。

我曾认为 jQuery 会完成这项工作,但我无法弄清楚如何准确提取 colspan、宽度或高度,并将其设置为新的 textarea。我有这段代码,它将所有 xxx 实例替换为 textareas,但它们的大小都相同,会扭曲表格格式。

<script>
    var replaced = $("body").html().replace(/xxx/g,'<textarea></textarea>');
    $("body").html(replaced);
</script>

任何建议表示赞赏。

PS:我使用的是CakePHP 2.0 并使用PHPExcel 将excel 更改为html,并在xxx 处生成textareas。

4

2 回答 2

0

如果你总是替换“xxx”,我不明白你为什么需要“提取”任何东西。如果您使用宽度属性一段时间,您将获得不扭曲表格并将其硬编码为<textarea style="width:XXpx">定义所需的确切像素。

您可以做的其他事情是在 textarea 定义中设置 cols 和 rows 属性

var replaced = $("body").html().replace(/xxx/g,'<textarea cols="3" rows="1"></textarea>');

而不是 with,如果单词总是 3 个字母长,那么使用cols="3".

但是,如果我误解了您想要做的事情,并且您需要动态更改样式和属性<td>,您可以使用 this从中提取 colspan

$("#the-td").attr("colspan");

但是,您需要参考正确的<td>. 而对于提取风格,代码是

$("#the-td").css("width");
于 2013-06-07T14:24:07.250 回答
0

我能够通过使用以下代码来解决这个问题:

var replaced = $("body").html().replace(/xxx/g,'<textarea style=" width: 100%; height: 100%; min-height:3em; box-sizing: border-box; resize: none; display:block;"></textarea>'); $("body").html(replaced);

这会在 xxx 处创建完全符合大纲表格式的表格。最后,不需要复杂的数据提取。我的情况很特别,所以我不知道它是否会帮助任何人,但希望它会。

于 2013-06-07T14:46:39.090 回答