У меня есть html-документ, содержащий некоторый текст, предположим, что в каждой строке документа есть одно слово, я хочу заменить каждое слово текстовым полем, содержащим это слово. Есть ли простой способ сделать это (в javascript)? Практический пример: предположим, что у меня есть html-документ, содержащий таблицу, содержащую мой класс, и есть ячейка, содержащая среднее значение, я хочу заменить каждый класс текстовым полем, а затем позволить пользователю редактировать оценки для вычисления нового средняяЗаменить текст текстовым полем, содержащим этот текст
ответ
если предположить, что все эти слова в div
, вот как я подошел к проблеме с JQuery (извините, если вы ищете для чистого JS)
HTML
<div>These are all yours words. You want to split ALL of these to new textboxes</div>
JQuery
var currentText = $("div").text();
var arrWords = currentText.split(" ");
$("div").empty();
var newHtml = "";
for (var i = 0; i < arrWords.length; i++) {
newHtml += "<input type='text' value='" + arrWords[i] + "'/><br/>";
}
$("div").append(newHtml);
Heres скрипка: http://jsfiddle.net/SeYqU/2/
Вы имеете в виду, что каждое слово уже находится в собственном элементе? Думаю, вы действительно слишком упрощаете проблему. –
Да, я знаю .. Я просто не могу представить способ разделить КАЖДОЕ слово на странице ... за исключением сращивания на пространствах и делать это так: \ – tymeJV
Обновлен ответ и скрипка. – tymeJV
Здесь на jsfiddle, но вы должны объяснить себя лучше
<div>this</div>
<div>word</div>
<div>or</div>
<div>that</div>
<div>word</div>
var divs = document.getElementsByTagName("div");
Array.prototype.forEach.call(divs, function(div) {
var word = div.textContent,
textArea = document.createElement("input");
div.textContent = "";
textArea.value = word;
div.appendChild(textArea);
});
Не могли бы вы расширить свой вопрос, возможно, некоторый пример HTML? – Xotic750
Прочтите это: https://developer.mozilla.org/en-US/docs/HTML/Content_Editable. Может, тебе это понравится. – VisioN
Вы действительно хотите заменить все слова в документе HTML? Не только некоторые из конкретных контейнеров (например, абзацы)? –