javascript函数中有多个变量?

时间:2013-03-09 00:01:10

标签: javascript function variables innerhtml

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

我的功能是:

// generate preview
function updatePreview() {
    if (document.getElementById('txt')) {
    var body = document.getElementById('txt').value;
    document.getElementById('preview').innerHTML = body;
    }
}

标题的表单字段名为“title”,摘要textarea名为“sumtxt”,因此想象的函数将类似于:

// generate preview
function updatePreview() {
    if (document.getElementById('title')+('txt')+('sumtxt')) {
    var body = document.getElementById('title')+('txt')+('sumtxt').value;
    document.getElementById('preview').innerHTML = body;
    }
}

......但即使对我来说,这看起来也不是特别正确。 建议? 感谢。

3 个答案:

答案 0 :(得分:1)

document.getElementById('txt')是DOMNode或nulldocument.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;
    ...
}

答案 1 :(得分:0)

您可以逐一查看。

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()中:

function updatePreview() {
    var title = getElementValueById("title");
    var txt = getElementValueById("txt");
    var sumtxt = getElementValueById("sumtxt");
    if(title && txt && sumtxt){
        document.getElementById('preview').innerHTML = title + txt + sumtxt;
    }
}  

希望它有用。

答案 2 :(得分:0)

对Frits的回答......

 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;
     }
  }