0

他の for ループが呼び出すための新しいセル/行を作成する for ループを使用して関数を作成する方法を考えています。この関数は、指定された量のセルである newRow を返す必要があります。アイデアは、html コードが 1 行に 3 つの画像を表示することですが、画像が 2 つしかない場合は 2 つのセルしか必要ありません。それが最初の if / else ステートメントです。

ここまでのコードは..

 var cells = document.getElementsByTagName('td');
 var cell = '<td>' + cells[0].innerHTML + '</td>';
 //console.log(cell);


 document.getElementById('searchBtn').onclick = search;

 //specified as 3 per row
 var NUMPERROW = 3;

 //gets number from form text input
 var num = document.getElementById("searchtxt").value;

 function search(){

//var num = 4;

console.log(num);

//loop once per row
var htmlStr = '';
for (var i = 0; i < num; i = i + NUMPERROW){

    //htmlStr += '<tr>' + cell + cell + cell + '</tr>;
    if (num - i >= NUMPERROW) {

        //displays a new row of 3 
        htmlStr += newRow(NUMPERROW);

    }else { //less then 3 to display

        htmlStr += newRow(num - i);
    }


} 
document.getElementById('thumbnails').innerHTML = htmlStr;


}
/*
*Returns the html for a new row.
* numToAdd: the number of cells to add for this row.
*
*/
//this function i do not know how to write

function newRow(cellsToAdd){

 /////?????????? should be a for loop return new Row for the for loop above

}

}

4

1 に答える 1

1

省略できる値を渡したくない場合の簡単な関数を次に示しますcontent

function newRow(numberOfCells, content)
{
var result = '<tr>';
for(var i = 0; i < numberOfCells; i++)
    result += '<td>' + content[i] + '</td>';
result += '</tr>';
return result;
}
于 2013-08-20T07:56:06.130 に答える