首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法通过遍历Javascript数组向现有表添加新列

无法通过遍历Javascript数组向现有表添加新列
EN

Stack Overflow用户
提问于 2016-05-29 08:43:17
回答 1查看 565关注 0票数 0

我有两个表,我将行从一个表复制到另一个表。在复制时,我只想复制列中的一个下拉列表中的选定值和行,我几乎可以这样做,但是第一个值在追加时从数组中丢失了。

这是我的密码

代码语言:javascript
复制
$("#addrecords").click(function () {
  alert("clicked");
  var found = false;
  var jsonObj = []; //creating array to push all values which are selected from each drop down.
  var count=0; //initializing count to iterate later to create dynamic column and append at last

  $('#dataTable').find('tr').each(function () {
    var row = $(this);
    if (row.find('input[type="checkbox"]').is(':checked')) {
      found = true;

      var row = $(this).closest('tr').html(); //get checked row
      var dropdownVal= $(this).find("td:eq(5)").find('option:selected').val();   //get the selected val from dropdown

      jsonObj.push(dropdownVal);   //pushing into array

      $('#dynamictable tbody').append('<tr>' + row + '</tr>'); //appending copied row from first table to second table
    }
    else {
      //alert "NOthing found"
      //found=false;
    };
  });
  if (!found) {
    alert("Nothing Found");
  }
  else {
    //alert("Found");// Or you can omit the else part
    //alert("val---" + values);
  }


  $('#dynamictable tr').find('td:last-child').remove(); // removing last column td in second table 

  $('#dynamictable tbody').each(function(count){

    $(this).find('td').eq(4).after(jsonObj[count]); //trying to append new column to table by iterating through array jsonObj loop

  });

});
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table border="1" style="width:50%" class="table table-striped" id="dataTable">
  <thead>
    <tr>
      <th>Select</th>
      <th>FR_ID</th>
      <th>Tag Name</th>
      <th>FR_Source</th>
      <th>FR_Destination</th>
      <th>Reusability</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><input type="checkbox" /></td>
      <td>1</td>
      <td>Molex</td>
      <td>ITSM</td>
      <td>Service Now</td>
      <td><Select>
        <option value="Completely">Completely</option>
        <option value="Partially">Partially</option>
        </Select>
      </td>
    </tr>
    <tr>
      <td><input type="checkbox" /></td>
      <td>14</td>
      <td>bpm,xml,snow,srms</td>
      <td>itsm</td>
      <td>b2b</td>
      <td><Select>
        <option value="Completely">Completely</option>
        <option value="Partially">Partially</option>
        </Select>
      </td>
    </tr>
  </tbody>
</table>
<div class="small-12 columns">
  <div>
    <input type="submit" value="Next" id="addrecords" style="font-size: 10px" />
  </div>
</div>
<br />
<table border="1" style="width:50%" class="table table-striped" id="dynamictable">
  <thead>
    <tr>
      <th>Select</th>
      <th>FR_ID</th>
      <th>FR_Client</th>
      <th>FR_Source</th>
      <th>FR_Destination</th>
      <th>Reusability</th>
    </tr>
  </thead>
  <tbody></tbody>
</table>

下面的图片显示了我能得到的结果。请建议我在这里缺少的更改,以获得正确的值。谢谢您对此所需的修改/建议。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-29 08:52:30

使用$('#dynamictable tbody tr')而不是$('#dynamictable tbody')。您可以只添加html(),而不是删除最后一列。还将jsonObj初始化为全局变量。

代码语言:javascript
复制
var jsonObj = []; //creating array to push all values which are selected from each drop down.
$("#addrecords").click(function() {
  alert("clicked");
  var found = false;
  var count = 0; //initializing count to iterate later to create dynamic column and append at last

  $('#dataTable').find('tr').each(function() {
    var row = $(this);
    if (row.find('input[type="checkbox"]').is(':checked')) {
      found = true;
      var row = $(this).closest('tr').html(); //get checked row
      var dropdownVal = $(this).find("td:eq(5)").find('option:selected').val(); //get the selected val from dropdown
      jsonObj.push(dropdownVal); //pushing into array
      $('#dynamictable tbody').append('<tr>' + row + '</tr>'); //appending copied row from first table to second table                  
    } else {
      //alert "NOthing found"
      //found=false;
    };
  });
  if (!found) {
    alert("Nothing Found");
  } else {
    //alert("Found");// Or you can omit the else part
    //alert("val---" + values);
  }


  $('#dynamictable tr').find('td:last-child').empty(); // removing last column td in second table 
  $('#dynamictable tbody  tr').each(function(count) {
    console.log(jsonObj)
    $(this).find('td:last-child').text(jsonObj[count]); //trying to append new column to table by iterating through array jsonObj loop

  });
});
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table border="1" style="width:50%" class="table table-striped" id="dataTable">
  <thead>
    <tr>
      <th>Select</th>
      <th>FR_ID</th>
      <th>Tag Name</th>
      <th>FR_Source</th>
      <th>FR_Destination</th>
      <th>Reusability</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>
        <input type="checkbox" />
      </td>
      <td>1</td>
      <td>Molex</td>
      <td>ITSM</td>
      <td>Service Now</td>
      <td>
        <Select>
          <option value="Completely">Completely</option>
          <option value="Partially">Partially</option>
        </Select>
      </td>
    </tr>
    <tr>
      <td>
        <input type="checkbox" />
      </td>
      <td>14</td>
      <td>bpm,xml,snow,srms</td>
      <td>itsm</td>
      <td>b2b</td>
      <td>
        <Select>
          <option value="Completely">Completely</option>
          <option value="Partially">Partially</option>
        </Select>
      </td>
    </tr>
  </tbody>
</table>
<div class="small-12 columns">
  <div>
    <input type="submit" value="Next" id="addrecords" style="font-size: 10px" />
  </div>
</div>
<br />
<table border="1" style="width:50%" class="table table-striped" id="dynamictable">
  <thead>
    <tr>
      <th>Select</th>
      <th>FR_ID</th>
      <th>FR_Client</th>
      <th>FR_Source</th>
      <th>FR_Destination</th>
      <th>Reusability</th>
    </tr>
  </thead>
  <tbody></tbody>
</table>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37507900

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档