Проблема в том, что технически браузеры должны отображать пробел только тогда, когда они сталкиваются с пробелами. Таким образом, ряд пробелов и вкладок будет отображать один пробел в содержимом.
Обычно, чтобы предотвратить это, вы должны использовать:
white-space: pre;
Чтобы сохранить все пустое пространство.
Проблема в том, что даже если вы применяете этот CSS к исходной области содержимого, он не сохраняет пустое пространство при копировании содержимого (хотя это происходит на дисплее, если вы показываете скрытое содержимое). Пример на JS Fiddle .
Возможно, вы могли бы использовать больше формата данных для хранения данных в DOM?
Например:
<div id="contentTextOriginal" style="display: none;">
{
salesArea: "560 sq ft (52.02 m²)",
ancillaryStorage: "678 sq ft (62.99 m2)",
notes: "separate W.C./Cloakroom",
total: "1,238 sq ft (115.00 m2)"
}</div>
Затем вы можете использовать эти данные, чтобы быть настолько умными, насколько вам нравится ... с некоторой помощью веб-сайта JSON .
Например, вы могли бы создать форму с правильными входными данными (это всего лишь пример, так что дизайна не так много, он просто показывает, что возможно).
var originalContent = $("#contentTextOriginal").text();
var jsonData = eval('(' + originalContent + ')');
var dynamicForm = '';
for (var key in jsonData) {
if (jsonData.hasOwnProperty(key)) {
dynamicForm += '<p><label>' + key + '<br><input type="text" value="' + jsonData[key] + '" name="' + key + '" size="40"></label></p>';
}
}
$("#contentTextOriginal").after(dynamicForm);
См. Этот пример в действии .