2013-06-06 3 views
0

У меня длинная таблица с разными записями, некоторые из которых отмечены как «xxx». Когда HTML-код генерируется, строка с ххх выглядит следующим образом (генерируемыми плагином):Изменить тег html с теми же размерами

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

Я хочу изменить это в текстовое поле с такими же размерами, так что она не искажает таблицу ,

Я думал, что jQuery выполнит эту работу, но я не могу понять, как именно извлечь Colspan, ширину или высоту и установить его в новое текстовое пространство. У меня есть этот код, который заменяет все экземпляры xxx на текстовые поля, но все они одинаковы, что искажает формат таблицы.

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

Любые рекомендации приветствуются.

PS: Я использую CakePHP 2.0 и использую PHPExcel для изменения excel для html и создания текстовых полей везде, где xxx.

ответ

0

Если вы всегда будете заменять «xxx», я не понимаю, зачем вам «извлекать» что угодно. Если вы некоторое время играете с атрибутом width, вы получите точные пиксели, которые вам нужно, чтобы не исказить таблицу и не перекодировать ее в определение <textarea style="width:XXpx">.

Другое, что вы можете сделать, это установить COLS и атрибутов строк в определении TEXTAREA

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

вместо с, если слово всегда 3 буквы долго, а затем использовать cols="3".

Если, однако, я неправильно истолкованы, что вы хотели сделать, и вы потребность изменить стиль и attributes динамически, вы можете извлечь Colspan из <td> с этим

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

Вы должны иметь однако ссылка на правильный <td>. И для извлечения style, код

$("#the-td").css("width"); 
+0

Ну, это может решить случай в некоторых случаях, но в моем случае у меня есть таблица с разными размерами. Поэтому я просто нуждался в текстовом поле, чтобы заполнить всю коробку. Установка cols = 3, например, не подходит в этом случае, но я соглашусь с ответом, поскольку он может работать в некоторых случаях. Благодаря!!! – gothic12345

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);

Это создает таблицы, где ххх, которые соответствуют именно формат изложением Таблица. В конце концов, не требуется комплексное извлечение данных. Мое дело было довольно особенным, поэтому я не знаю, поможет ли оно кому-либо, но надеюсь, что это так.

Смежные вопросы