2013-04-18 63 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); 

繼承人小提琴: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); 
});