2016-06-24 4 views
-2

に関数の戻りを追加私は、文字列を返す関数を有する:のJavascript/jQueryの連結ストリング

function buildCell(){ 
    var returnString = ''; 
    returnString += '<td>'; 
    returnString += 'Cell Contents'; 
    returnString += '</td>'; 
    return(returnString); 
} 

を私が最初の文字列を呼び出し、その値をインラインで返すべき別の機能を有しています

function buildTable(){ 
    $('body').html(
     '<table>' 
     +'<tr>' 
     + buildCell() 
     +'</tr>' 
    ) 
} 

テーブルにセルがない場合、セルは未定義に戻ります。 2番目の関数の最初の関数の戻り値を正しく連結するにはどうすればよいですか?

編集:セミコロンを削除しても、「未定義」が表示されます。最初の関数にアラートを配置すると、アラートに正しい値が表示されますが、2番目の関数ではまだ定義されていません。

+1

あなたは誤ってセミコロンをbuildTable関数> buildCell()に配置しました。 –

+0

セミコロンを使わずに試しましたが、未定義です。 – user1955162

+0

セルが追加されていないことを意味しますか?または、buildTableが未定義以外のものを返すことを期待していますか? –

答えて

1

あなたは間違ってセミコロンをbuildTableのfunction> buildCell()に配置しました。

このことから、あなたの機能を変更し

:これに

function buildTable(){ 
    $('body').html(
     '<table>' 
     +'<tr>' 
     + buildCell(); // <--- 
     +'</tr>' 
    ) 
} 

function buildTable() { 
    return $('body').html('<table>' + '<tr>' + buildCell() + '</tr>'); 
} 

https://jsfiddle.net/k0ageq81/

function buildCell() { 
 
    var returnString = ''; 
 
    returnString += '<td>'; 
 
    returnString += 'Cell Contents'; 
 
    returnString += '</td>'; 
 
    return returnString; 
 
} 
 

 
function buildTable() { 
 
    return $('body').html('<table>' + '<tr>' + buildCell() + '</tr>'); 
 
} 
 

 
buildTable();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

+0

あなたのスニペットは機能しますが、上に投稿したコードでは、このセミコロンは間違っていて動作しません。 – derloopkat

+0

私は間違って何を意味するのか分かりません..? –

+0

あなたは何を知っていますか?あなたはあなたの答えを編集しました。以前はこれを投稿しました。 { $( '体')HTML( '

' + ' ' + buildCell() +''; // <--- )。 }関数buildTable() "これを試してみてください" – derloopkat

1

これは動作します:

<body> 
    <script> 
     function buildCell() { 
     var returnString = ''; 
     returnString += '<td>'; 
     returnString += 'Cell Contents'; 
     returnString += '</td>'; 
     return(returnString); 
     } 
     function buildTable(){ 
     $('body').html(
      '<table>' 
      +'<tr>' 
      + buildCell() 
      +'</tr>' 
     ); 
     } 
     buildTable(); 
    </script> 
    </body>