2013-04-18 5 views
-4

У меня есть html-документ, содержащий некоторый текст, предположим, что в каждой строке документа есть одно слово, я хочу заменить каждое слово текстовым полем, содержащим это слово. Есть ли простой способ сделать это (в javascript)? Практический пример: предположим, что у меня есть html-документ, содержащий таблицу, содержащую мой класс, и есть ячейка, содержащая среднее значение, я хочу заменить каждый класс текстовым полем, а затем позволить пользователю редактировать оценки для вычисления нового средняяЗаменить текст текстовым полем, содержащим этот текст

+1

Не могли бы вы расширить свой вопрос, возможно, некоторый пример HTML? – Xotic750

+0

Прочтите это: https://developer.mozilla.org/en-US/docs/HTML/Content_Editable. Может, тебе это понравится. – VisioN

+0

Вы действительно хотите заменить все слова в документе HTML? Не только некоторые из конкретных контейнеров (например, абзацы)? –

ответ

0

если предположить, что все эти слова в 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/

+0

Вы имеете в виду, что каждое слово уже находится в собственном элементе? Думаю, вы действительно слишком упрощаете проблему. –

+0

Да, я знаю .. Я просто не могу представить способ разделить КАЖДОЕ слово на странице ... за исключением сращивания на пространствах и делать это так: \ – tymeJV

+0

Обновлен ответ и скрипка. – tymeJV

0

Здесь на 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); 
});