简体   繁体   English

如何根据总数生成表tr

[英]How to generate table tr based on a total number

i wrote the blow code to generate tr for my table based on a total count . 我写了一个打击代码,根据总计数为我的表生成tr。 there is a input type text that contains a number and i want to generatge tr for my table according to that number but it is not working . 有一个包含数字的输入类型文本,我想根据该数字为我的表生成tr但它不起作用。 here is my snippet : 这是我的片段:

 function findTotal(){ var table = $("#travells"); var rowNum = parseInt($("#total").val(), 10); var resultHtml = ''; for(var i = 0 ; i < rowNum ; i++) { resultHtml += ["<tr>", "<td>", (i+1), "</td>", '<td><input type="name" placeholder="text goes here..."></td>', '<td><input type="name" placeholder="text goes here..."></td>', '</tr>'].join("\\n"); } table.html(resultHtml); return false; }; 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <body onload="findTotal()"> <input type="text" value="8" id="total"/> <table id="travells"> <thead> <tr class="travelcounting"> <th>name</th> <th>gender</th> <th>country</th> </tr> </thead> <tbody> <tr> <td><input type="text" id="Name" readonly/></td> <td class="columns"><input type="text" id="gender" readonly/></td> <td class="columns"><input type="text" id="country" readonly/></td> </tr> </tbody> </table> </body> 

 $( document ).ready(function() { var table = $("#travells"); var rowNum = parseInt($("#total").val(), 10); var resultHtml = ''; for(var i = 0 ; i < rowNum ; i++) { resultHtml += ["<tr>", "<td>", (i+1), "</td>", '<td><input type="name" placeholder="text goes here..."></td>', '<td><input type="name" placeholder="text goes here..."></td>', '</tr>'].join("\\n"); } table.html(resultHtml); return false; }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script> <input type="hidden" value="8" id="total"/> <table id="travells"> <thead> <tr class="travelcounting"> <th>name</th> <th>gender</th> <th>country</th> </tr> </thead> <tbody> <tr> <td><input type="text" id="Name" readonly/></td> <td class="columns"><input type="text" id="gender" readonly/></td> <td class="columns"><input type="text" id="country" readonly/></td> </tr> </tbody> </table> 

When constructing these kind of strings, the new template literals from ES6 are a good fit. 构造这些字符串时,ES6中的新模板文字非常适合。 See here for more info: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals 有关详细信息,请参阅此处: https//developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals

 function findTotal(){ var body = document.getElementsByTagName("tbody")[0]; var rowNum = parseInt(document.getElementById("total").value, 10); var resultHtml = ''; for(var i = 0 ; i < rowNum ; i++) { resultHtml += `<tr> <td> ${(i + 1)} </td> <td> <input type="name" placeholder="text goes here..."> </td> <td> <input type="name" placeholder="text goes here..."> </td> </tr>`; }; body.innerHTML = resultHtml; }; 
 <body onload="findTotal()"> <input type="text" value="8" id="total"/> <table id="travells"> <thead> <tr class="travelcounting"> <th>name</th> <th>gender</th> <th>country</th> </tr> </thead> <tbody> <tr> <td><input type="text" id="Name" readonly/></td> <td class="columns"><input type="text" id="gender" readonly/></td> <td class="columns"><input type="text" id="country" readonly/></td> </tr> </tbody> </table> </body> 

 $("#RowC").on("click",function(){ var TRCnt=$("tbody >tr").length; for(var i=TRCnt;i< (parseInt($("#RowNum").val())+TRCnt);i++){ let tr=$("<tr/>"); let inputName=$("<input/>",{type:"text",name:"name",placeholder:"name",value:i+1}); let inputGender=$("<input/>",{type:"text",name:"gender",placeholder:"gender"}); let inputCountry=$("<input/>",{type:"text",name:"country",placeholder:"country"}); tr.append($("<td/>").html(inputName)); tr.append($("<td/>").html(inputGender)); tr.append($("<td/>").html(inputCountry)); $("tbody").append(tr); }; }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input type="number" id="RowNum" /> <input type="button" id="RowC" value="click" /> <hr> <table> <thead> <tr> <th>name</th> <th>gender</th> <th>country</th> </tr> </thead> <tbody> </tbody> </table> 

This is the jquery code: 这是jquery代码:

 $("#submitButton").click(function() {
    var table = $("#resultTable");
    var rowNum = parseInt($("#table-row-num").val(), 10);
    var resultHtml = '';

    for(var i = 0 ; i < rowNum ; i++) {
        resultHtml += ["<tr>", 
     "<td>", 
      (i+1),
     "</td>",
     '<td><input type="name" placeholder="text goes here..."></td>',
     '<td><input type="name" placeholder="text goes here..."></td>',
     '</tr>'].join("\n");
    }  

    table.html(resultHtml);
    return false; 
});

I wish you luck with implementation. 祝你好好实施。 :) :)

The Demo here: http://jsfiddle.net/fpd8dwtw/20/ 这里的演示: http//jsfiddle.net/fpd8dwtw/20/

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM