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が仕事をすると思っていましたが、コルスパン、幅、または高さを抽出して新しいテキストエリアに設定する方法を正確に理解できません。すべての xxx インスタンスをテキストエリアに置き換えるこのコードがありますが、それらはすべて同じサイズであり、テーブル形式が歪んでいます。

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

任意の推奨事項をいただければ幸いです。

PS: 私は CakePHP 2.0 を使用しており、PHPExcel を使用して Excel を html に変更し、xxx のどこにでもテキストエリアを生成します。

4

2 に答える 2

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 に答える
0

常に「xxx」を置き換える場合、なぜ何かを「抽出」する必要があるのか​​ わかりません。width 属性をしばらくいじると、テーブルを歪ませずに定義にハードコードするのに必要な正確なピクセルが得られます<textarea style="width:XXpx">

他にできることは、テキストエリア定義で cols および rows 属性を設定することです

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

with の代わりに、単語が常に 3 文字の長さである場合は、 を使用しますcols="3"

ただし、やりたいことを誤解していて、スタイルと属性を動的に変更する必要がある場合は、これを使用して から colspan を抽出できます。<td>

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

ただし、正しい への参照が必要<td>です。styleを抽出するためのコードは次のとおりです。

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