簡體   English   中英

javascript函數中有多個變量?

[英]More than one variable in a javascript function?

標題可能不正確,我不確定如何巧妙地表達問題。 可能與缺乏智能有關... anyhoo:作為CMS的一部分,我有這個javascript函數,可以生成輸入到HTML表單文本區域中的數據的預覽。 現在,表單顯然包含的部分不僅限於此文本區域,而且我想擴展該函數以包括“ 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或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;
    ...
}

您可以一一檢查。

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

希望對您有所幫助。

回答弗里茨..

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM