仅将表中的一些数据存储到对象中

时间:2017-01-30 04:02:38

标签: jquery

<body>
  <div id="contacts">
    <table>
      <thead>
        <tr>
          <th class="sort" data-sort="name">Name</th>
          <th class="sort" data-sort="age">Age</th>
          <th class="sort" data-sort="city">City</th>
          <th colspan="2">
            <input type="text" class="search" placeholder="Search contact" />
          </th>
        </tr>
      </thead>
      <tbody class="list">
        <tr>
          <td class="id" style="display:none;">1</td>
          <td class="name">Jonny</td>
          <td class="age">27</td>
          <td class="city">Stockholm</td>
          <td class="edit"><button class="edit-item-btn">Edit</button></td>
          <td class="remove"><button class="remove-item-btn">Remove</button></td>
        </tr>
        <tr>
          <td class="id" style="display:none;">2</td>
          <td class="name">Jonas</td>
          <td class="age">-132</td>
          <td class="city">Berlin</td>
          <td class="edit"><button class="edit-item-btn">Edit</button></td>
          <td class="remove"><button class="remove-item-btn">Remove</button></td>
        </tr>
        <tr>
          <td class="id" style="display:none;">3</td>
          <td class="name">Gustaf</td>
          <td class="age">-23</td>
          <td class="city">Sundsvall</td>
          <td class="edit"><button class="edit-item-btn">Edit</button></td>
          <td class="remove"><button class="remove-item-btn">Remove</button></td>
        </tr>
        <tr>
          <td class="id" style="display:none;">4</td>
          <td class="name">Fredrik</td>
          <td class="age">26</td>
          <td class="city">Goteborg</td>
          <td class="edit"><button class="edit-item-btn">Edit</button></td>
          <td class="remove"><button class="remove-item-btn">Remove</button></td>
        </tr>
      </tbody>
    </table>
  </div>

  <button id="submitForm">submit</button>
</body>

JS

function SendData(){

    var options = {
      valueNames: [ 'id', 'name', 'age', 'city' ]
    };

    var tableArray =[];

    $('#contacts tr').each(function(index, tr) {
        var lines = $('td', tr).map(function(index, td) {
            return $(td).text();
        });
        // Here lines will contain an array of all td values for the current row:
        // like ['value 1', 'value 2', 'value 3']
        tableArray.push(lines);
    });

    console.log(tableArray);
}

我的表格中包含一些数据,其中包括姓名,姓名,年龄,城市,编辑和删除等信息。但我只需要&#34; id,姓名,年龄,城市&#34;要存储在我的对象中,我该怎么做?而且我也不需要将thead存储在最上面。

所以我需要存储课程列表&#34; id,姓名,年龄,城市&#34;对于我的选项对象,我该怎么做?

1 个答案:

答案 0 :(得分:0)

我认为你只想选择特定的&#34; td&#34;来自&#34; tr&#34;的标签。要进行该选择,您可以只为那些&#34; td&#34;添加额外的课程。如下。

<tr>
      <td class="id myData" style="display:none;">1</td>
      <td class="name myData">Jonny</td>
      <td class="age myData">27</td>
      <td class="city myData">Stockholm</td>
      <td class="edit"><button class="edit-item-btn">Edit</button></td>
      <td class="remove"><button class="remove-item-btn">Remove</button></td>
</tr>

然后你可以改变你的选择器以包括类&#34; myData&#34;也符合标准。这将选择&#34; td&#34;只有&#34; myData&#34;在他们的class属性中,它只为您提供所需的数据。

$('#contacts tr').each(function(index, tr) {
    var lines = $('td .myData', tr).map(function(index, td) {
        return $(td).text();
    });
    // Here lines will contain an array of all td values for the current row:
    // like ['value 1', 'value 2', 'value 3']
    tableArray.push(lines);
});

因为您只选择&#34; td&#34;来自&#34; tr&#34;所以&#34; th&#34;将不会在此选择中考虑,您只能从&#34; td&#34;正在上课&#34; myData&#34;。

这可以解决您的问题。