如何使用不同的表ID显示两个html表?

时间:2019-10-31 06:03:50

标签: javascript html

我想使用不同的表ID显示两个html表。我可以显示一个表,但不能显示第二个表,也无法弄清楚我在哪里出错。

代码如下:

var $container = $("#container");
 
 
 var $row = $("#container table tbody tr");

 // Loop through items in JSON data..
   var $button = $("<button>" + 'xyz' + "</button>");
   $container.prepend($button);
   var table = $("<table1>");
   table.append($("<tr><th>column1</th><th>column2</th></tr>"));
          
	 // Button click handler..
   $button.on("click", function(e) {
   e.preventDefault();
   for( var i=0; i<2; i++) {
     
     // Replace row HTML..
     //parent row
     var row=$('<tr ><td>' + 'data' + '</td>' +  + '<td>' + "" + '</td></tr>');
     
     table.append(row);
     
     for(var j =0; j<2; j++) {
     
     var row=$('<tr><td>' + "" + '</td></tr>');
     $('<td>data</td>')
          .on('click', function() { 
          //I want to display table2 when clicked on col2 data
          
          var table = $("<table2>");
   
          table.append($("<tr><th>col1</th><th>col2</th></tr   >"));
          var row=$('<tr><td>' + 'data' + '</td>' +  + '<td>' + "" + '</td></tr>');
          table.append(row);
          
          })
          .appendTo(row);
          table.append(row);
          $("#table2").html(table);
     }
 }    
     
    
     $("#table1").html(table);
   


     // Show table if it's not already visible..
     

   });
#table2 {
   margin-top: 20px;
   border-collapse: collapse;
   border: 1px solid silver;
   width: 500px;
 }


#table1 {
   margin-top: 20px;
   border-collapse: collapse;
   border: 1px solid silver;
   width: 500px;
 }

#table1 th {
   border: 1px solid black;
   text-align: left;
 }
#table1 td {
  border: 1px solid black;
  text-align: left;
  }
#table1 tr {
  background-color: #f2f2f2;
  }
  
 button {
   margin-left: 15px;
 }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="container">
   <div id="table1">
   </div>

 </div>
 
   <div id="table2">
   </div>

当我单击column2的值时,我想显示第二张表。请指导我如何解决此问题。 这是完整的代码-https://jsfiddle.net/gaurav10022/styjk9vr/48/

2 个答案:

答案 0 :(得分:1)

在将In [1]: import logging In [2]: logger = logging.getLogger() In [3]: logger.warning("test", extra={"username": "jashugan"}) test 事件应用到最后一列之后,您应该首先附加表列的值。

尝试下面的代码,或通过JSFiddle

extra
click
var $container = $("#container");
var m = ['data','data1'];

// Loop through items in JSON data..
var $button = $("<button>" + 'xyz' + "</button>");
$container.prepend($button);
var table = $("<table>");
table.append($("<tr><th>column1</th><th>column2</th></tr>"));

// Button click handler..
$button.on("click", function(e) {
  e.preventDefault();
  for (var i = 0; i < 2; i++) {

    // Replace row HTML..
    //parent row
    var row = $('<tr ><td>' + 'data' + '</td><td>' + "" + '</td></tr>');

    table.append(row);

    for (var j = 0; j < 2; j++) {
      //child row
      var row = $('<tr><td>' + "" + '</td><td>' + m[j] + '</td></tr>');
      $(row).find('td:last').on('click', function() {
        // second table
        var tempData = $(this).text();
        var table2 = $("<table>");

        table2.append($("<tr><th>col1</th><th>col2</th></tr   >"));
        var row = $('<tr class="parent_row" ><td>' + tempData + '</td>' + +'<td>' + "" + '</td></tr>');
        table2.append(row);
        $("#table2").html(table2);
      })
      table.append(row);
    }
  }


  $("#table1").html(table);



  // Show table if it's not already visible..


});

答案 1 :(得分:0)

jQuery选择器在今天已经过时了(即它们无法产生实时集合)。 $('<td>data</td>')将为您提供空的结果,因此不会添加onclick。这将为您提供所需的收藏夹:

table1.querySelectorAll("td:nth-child(2)")

td:nth-child(2)选择被调用对象(表1)上第二列的单元格。然后,您可以将onclick事件循环挂接到集合中的每个项目。

相关问题