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