当我单击<th>中的复选框时,我想获取所有与该值匹配的<td>并将其打印出来

洪鸿

首先,我将从中获取表的配置代码。

<table id="sum_table" border="1">
  <tr>
    <c:forEach var="colName" items="${rData.get(j).colNames}">
      <c:forEach var="colNameValue" items="${colName}">
        <th><input class="chkCol" name="chkColnames"
          type="checkbox">
          <label class="chkCol" for="chkColnames">${colName}</label></th>
      </c:forEach>
    </c:forEach>
  </tr>
  <c:forEach var="i" begin="0" end="${fn:length(rData.get(j).data[0])-1}">
    <c:if test="${i le 1000}">
      <c:set var="row" value="${rData.get(j).data}" />
      <tr>
        <c:forEach var="data" items="${row}">
          <td>${data[i]}</td>
        </c:forEach>
      </tr>
    </c:if>
  </c:forEach>
</table>

生成的表具有用于检查TH文本的复选框。如果创建了表,它将是这种类型的代码。

<table id="sum_table" border="1">
  <tr>
    <th>
      <input class="chkCol" name="chkColnames" type="checkbox">
      <label class="chkCol" for="chkColnames">CUST_ID</label>
    </th>
    <th>
      <input class="chkCol" name="chkColnames" type="checkbox">
      <label class="chkCol" for="chkColnames">DIVIDED_SET</label>
    </th>
    <th>
      <input class="chkCol" name="chkColnames" type="checkbox">
      <label class="chkCol" for="chkColnames">SIU_CUST_YN</label>
    </th>
  </tr>
  <tr>
    <td>1</td>
    <td>1</td>
    <td>0</td>
  </tr>
  <tr>
    <td>2</td>
    <td>1</td>
    <td>0</td>
  </tr>

我想在此表中创建一个jQuery脚本来检查列名“ TH”,然后按OK按钮创建一个新表。

下面是我尝试的代码。TH输出良好,但不输出TD。“ #col_table”是通过检查的值新创建的表的ID,“#sum_table”是从中获取值的表。

$("#confirm").click(function() {

  var str = "";
  var list = $("input[name=chkColnames]:checked");
  var str2 = "";

  $("#selectCol").show();
  $("#col_table > thead > tr > th").remove();
  $("#col_table > tbody > tr > td").remove();

  for(var i=0; i<list.length; i++){
    str = $(list[i]).next().text();
      $("#col_table > thead > tr").append("<th>" + str + "</th>");
  }

  $("input[name=chkColnames]:checked").each(function(i,elements){

    index = ($(elements).index("input[name=chkColnames]"));
    //console.log(index);

    for(var k=0; k<5; k++) {
      var list2 = $("#sum_table > tbody > tr:nth-child(1)").nextAll().eq(k).children().eq(index);
      $("#col_table > tbody").append("<tr></tr>")
      console.log(list2.length)

      for(var j=0; j<list2.length; j++) {
        str2 = list2.text();
        $("#col_table > tbody > tr").append("<td>" + str2 + "</td>")
      }
    }
  })
})

我想像下面的图片一样实现。多谢您的协助。

在此处输入图片说明

吉乔

根据您对问题和提供的图像的理解,我创建了一个样本。请检查一下。

$(document).on('click', '#btn_generate', function() {
  var index = [];
  $('#tbl_Child').html('');
  // Finding checked checkboxes and adding them to an array
  $('#tbl_Main thead tr input[type=checkbox]:checked').each(function() {
    index.push($(this).closest('th').index());
    //console.log($(this).closest('th').text());
    //console.log($(this).closest('th').index());
  });
  //creating thead with only contents from checked th's
  var thead = $('<thead>');
  $('#tbl_Main thead tr th').each(function() {
    if (jQuery.inArray($(this).index(), index) !== -1) {
      thead.append($('<th>' + $(this).text() + '</th>'));
    }
  });

  //creating thead with only contents from checked th's corresponding td's
  var tbody = $('<tbody>');
  $('#tbl_Main tbody tr').each(function() {
    var tr = $('<tr>');
    $(this).find('td').each(function() {
      if (jQuery.inArray($(this).index(), index) !== -1) {
        tr.append($('<td>' + $(this).text() + '</td>'));
      }
    });
    tbody.append(tr);
  });
  $('#tbl_Child').append(thead);
  $('#tbl_Child').append(tbody);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="tbl_Main">
  <thead>
    <tr>
      <th><input type="checkbox" />A</th>
      <th><input type="checkbox" />B</th>
      <th><input type="checkbox" />C</th>
      <th><input type="checkbox" />D</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>01</td>
      <td>02</td>
      <td>03</td>
      <td>04</td>
    </tr>
    <tr>
      <td>11</td>
      <td>12</td>
      <td>13</td>
      <td>14</td>
    </tr>
    <tr>
      <td>21</td>
      <td>22</td>
      <td>23</td>
      <td>24</td>
    </tr>
  </tbody>
</table>
<input type="submit" id="btn_generate" value="Generate" />
<br />
<table id="tbl_Child">
</table>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我有一个变量并将其打印出来,并且打印出“ 2”

我尝试要求用户输入然后将其打印出来,但它不打印

我想让 def 函数的输出打印出来

如何使用gsub修改awk中变量的值并将其打印出来?

星期几不会打印出来,但是我的价格,主菜和卡路里确实会打印出来

并非所有行都从我的 CSV 文件中打印出来

当我单击表格中的特定TD时,我想将复选框设置为“已选中”

需要程序查找空间并将变量提取到空间的左侧和右侧并打印出来。我该怎么做?

如何在Java中读取文本文件的第一行并将其打印出来?

我有一个代码,需要按不同的顺序打印出来,但它一直在括号中打印出来

为什么我的“打印延迟信件”脚本会一次全部打印出来?

文件没有被打印出来,我在做什么错?

我必须显示来自 JSON 数组的对象列表。但我似乎无法打印出来

我的节点实例的变量和对象中的内容未打印出来

我正在尝试取消循环后让toString在组中一起打印出来

我正在尝试执行if语句,输入为21,结果为Time打印出来

生成多个并行wget并将结果存储在bash数组中,以便在完成所有wget时将其漂亮地打印出来

单击 <td> 元素时获取简单表格中的 <th> 元素

获取元素名称并打印出来

我正在尝试使用for循环打印转义字符。我的动机是看到被打印出来的值

在字符串中添加一个字符并将其打印出来会在C语言中产生乱码

TYPO3:读取tt_address并将其打印出来,并按sys_categories排序,并在自己的extbase扩展中添加流畅性

在Hashmap中访问Hashmap,并以某种格式将其打印出来

我将如何使用printf()和输入单词的String数组在一个星号框中打印出来

无法在我的 C++ MFC 应用程序中以英文和西里尔文打印出来

谁能帮助我如何创建ac程序将句子中单词的中心打印出来?

我试图在REACT中加密密码,以便每个字母都以星号`*`的形式打印出来

为什么我的代码从18而不是10打印出来,您能提供任何解决方案吗?

为什么我的grep过滤的字符串不能从while循环中打印出来?