javascript函数中有多个变量?

javascript函数中有多个变量?,javascript,function,variables,innerhtml,Javascript,Function,Variables,Innerhtml,标题可能不正确,我不知道如何巧妙地表达这个问题。可能与缺乏智力有关。。。anyhoo:作为CMS的一部分,我有一个javascript函数,可以生成输入HTML表单文本区域的数据预览。现在,表单显然包含了比这个textarea更多的部分,我想扩展这个函数以包括“title”和“summary”的变量。由于不懂javascript,我一直在思考如何做到这一点。因此,如果有任何善良的灵魂想要教育我(最好是用视觉的例子,而不仅仅是“好吧,你必须把东西放在东西里然后摆动…”),我将非常感激 我的功能是:

标题可能不正确,我不知道如何巧妙地表达这个问题。可能与缺乏智力有关。。。anyhoo:作为CMS的一部分,我有一个javascript函数,可以生成输入HTML表单文本区域的数据预览。现在,表单显然包含了比这个textarea更多的部分,我想扩展这个函数以包括“title”和“summary”的变量。由于不懂javascript,我一直在思考如何做到这一点。因此,如果有任何善良的灵魂想要教育我(最好是用视觉的例子,而不仅仅是“好吧,你必须把东西放在东西里然后摆动…”),我将非常感激

我的功能是:

// generate preview
function updatePreview() {
    if (document.getElementById('txt')) {
    var body = document.getElementById('txt').value;
    document.getElementById('preview').innerHTML = body;
    }
}
标题的表单字段名为“title”,摘要文本区域名为“sumtxt”,因此想象中的函数类似于:

// generate preview
function updatePreview() {
    if (document.getElementById('title')+('txt')+('sumtxt')) {
    var body = document.getElementById('title')+('txt')+('sumtxt').value;
    document.getElementById('preview').innerHTML = body;
    }
}
。。。但即使在我看来,这也不是特别正确。 建议?
谢谢。

document.getElementById('txt')
是一个DOMNode或
null
document.getElementById('txt')。value
是一个字符串,所以只需执行以下操作:

if (document.getElementById('title') !== null && document.getElementById('txt') !== null && document.getElementById('sumtxt') !== null) {
    var body = document.getElementById('title').value + document.getElementById('txt').value + document.getElementById('sumtxt').value;
    ...
}

你可以逐一检查

function updatePreview() {
    var body = "";
    if (document.getElementById('title')) {
        body += document.getElementById('title').value;
    }
    if (document.getElementById('txt')) {
        body += document.getElementById('txt').value;
    }
    if (document.getElementById('sumtxt')) {
        body += document.getElementById('sumtxt').value;
    }
    document.getElementById('preview').innerHTML = body;
}  
或者,您可以编写一个支持函数:

function getElementValueById(id){
    var node = document.getElementById(id);
    var value = null;
    if (node) {
        value = node.value;
    }
    return value;
}  
在updatePreview()中:


希望能有所帮助。

接受弗里茨的回答

 var eleholder = ['title','txt','sumtxt'], body= "";
 for(i=0;i<eleholder.length;i++){
     if(document.getElementById(eleholder[i]) !== null){
         body += document.getElementById(eleholder[i]).value;
     }else{
       body = "";
       break;
     }
  }
var eleholder=['title','txt','sumtxt',body=”“;

对于(i=0;iThanks!非常感谢。现在将蹒跚学步学习javascript…;)这段代码可能无法完成您希望它完成的任务。它在任何情况下都不等同于我的代码。
for
循环是个坏主意。
 var eleholder = ['title','txt','sumtxt'], body= "";
 for(i=0;i<eleholder.length;i++){
     if(document.getElementById(eleholder[i]) !== null){
         body += document.getElementById(eleholder[i]).value;
     }else{
       body = "";
       break;
     }
  }