我有一个带有输入文本字段的HTML表单,我希望将其粘贴回HTML正文,从而生成由JavaScript函数返回的文本字符串,即在输入字段按顺序排列的位置。一个简单的例子是:
<html>
<body>
This is the first field <input type="text" id="first"/>
and this is the second <input type="text" id="second"/> one.
</body>
</html>
当我现在查看此页面并在字段1中输入ABC并在字段2中输入XYZ时,我想知道如何使用JavaScript创建一段文本,如下所示:
这是第一个字段ABC,这是第二个XYZ字段。
所以,为了清楚起见,网页本身不需要动态更改,我只希望能够从其他地方调用JavaScript函数,然后使用当前输入的任何内容返回结果文本,粘贴到正文中。 任何帮助很多。 Tiaan
答案 0 :(得分:1)
您可以使用DOM循环遍历body
的子节点(可能递归),收集nodeValue
的text nodes属性(包含"This is the first field "
的位在您遇到input
element的情况下,获取其value
属性。将所有文本构建成一个字符串,然后就可以了。
一些参考文献:
答案 1 :(得分:0)
将表单文本和输入字段放入div并调用makeRecursive()(即没有args)来启动文本创建。
function makeRecursive(o)
{
var b = o || document.getElementsByTagName('div')[0];
var t = "";
if (b.nodeType === 1 && b.tagName === "INPUT")
t += b.value;
else if (b.nodeType === 3)
t += b.nodeValue;
if (b.hasChildNodes())
{
var c = b.firstChild;
while (c)
{
t += makeRecursive(c);
c = c.nextSibling;
}
}
return t;
}