2

私は再び問題を抱えています(私の愚かな質問に協力してください、私はJavaScriptに非常に慣れていません)。JavaScriptの動的テーブルの概念を理解しようとしています。もちろん私はグーグルを通り抜けましたが、概念を理解することができません:(

私が持っているのは、それぞれ行数と列数を入力するための2つのテキストボックス(tb1、tb2)です。したがって、ボタン(b1)をクリックすると、テキストボックスに指定された行数と列数に従ってテーブルが作成されます。これは私がこれまでに知っていることです。

<script type = "text/javascript">

function createTable(){
var a = document.getElementById("tb1").value;
var b = document.getElementById("tb2").value;

    if(a=="" || b==""){
        alert("Please enter some numeric value");
        }else{
        .......the creating table code goes here.....   

        }
    }

}

</script>

ボタンonClick="createTable()"でcreateTable関数を呼び出します。どんな助けでも大歓迎です。

4

3 に答える 3

1

これがあなたの機能です:

function createTable(){
    var a = document.getElementById("tb1").value;
    var b = document.getElementById("tb2").value;

        if(a=="" || b==""){
            alert("Please enter some numeric value");
            }else{


            row=new Array();
        cell=new Array();

        row_num=parseInt(a); //edit this value to suit
        cell_num=parseInt(b); //edit this value to suit

        tab=document.createElement('table');
        tab.setAttribute('id','newtable');

        tbo=document.createElement('tbody');

        for(c=0;c<row_num;c++){
        row[c]=document.createElement('tr');

        for(k=0;k<cell_num;k++) {
        cell[k]=document.createElement('td');
        cont=document.createTextNode((c+1)*(k+1))
        cell[k].appendChild(cont);
        row[c].appendChild(cell[k]);
        }
        tbo.appendChild(row[c]);
        }
        tab.appendChild(tbo);
        document.getElementById('mytable').appendChild(tab);//'myTable' is the parent control of your table, change it as per your requirements
                }
            }

        }

この属性をボタンに追加しますb1onclick= "createTable();"

于 2012-06-27T10:04:10.003 に答える
1

これがinnerHTMLを使用した別の解決策です

<script type = "text/javascript">

function createTable(){

var a = document.getElementById("tb1").value;
var b = document.getElementById("tb2").value;
var resultTable = '<table>';

if(a=="" || b==""){
    alert("Please enter some numeric value");
    }else{
         for(var i=0;i<parseInt(a);i++){
              resultTable += '<tr>';
              for (var j=0;j<parseInt(b);j++)
                   resultTable +='<td><\/td>';
              }
              resultTable +='<\/tr>';

         }
    resultTable+='<\/table';
    }
    return resultTable;

}

</script>

その後、innerHTMLを使用して、必要な要素に結果を追加します。たとえば、次の場合です。

<div id='myElement'></div>

次に、次のようにテーブルを要素(任意のjs関数内)に追加できます。

var targetElement = document.getElementById('myElement');
targetElement.innerHTML = createTable();

それ以外の場合は、次の行を削除できます。

return resultTable;

次のように、関数内の要素にテーブルを追加します。

var target = document.getElementById('myElement');
target.innerHTML=resultTable;
于 2012-06-27T10:11:59.023 に答える
1

JS

function createTable() {
    var a, b, tableElem, rowElem, colElem;

    a = document.getElementById('tb1').value;
    b = document.getElementById('tb2').value;

    if (a == "" || b == "") {
        alert("Please enter some numeric value");
    } else {
        tableElem = document.createElement('table');

        for (var i = 0; i < a; i++) {
            rowElem = document.createElement('tr');

            for (var j = 0; j < b; j++) {
                colElem = document.createElement('td');
                colElem.appendChild(document.createTextNode(j + 1)); //to print cell number
                rowElem.appendChild(colElem);
            }

            tableElem.appendChild(rowElem);
        }

        document.body.appendChild(tableElem);


    }
}

JSFiddle
http://jsfiddle.net/mprRb/1/

于 2012-06-27T10:37:26.803 に答える