【问题标题】:Get Data from HTML Table with Jquery (Or other ways if possible)使用 Jquery 从 HTML 表中获取数据(或其他方式,如果可能)
【发布时间】:2019-04-12 12:44:03
【问题描述】:

我有一个非常大的 HTML 表格,其中的数据格式如下(我的表格的简化版本):

https://pastebin.com/K5UB4cGB

这个列表要大得多。

我需要知道哪个应用程序在哪个服务器(多个)上运行。

我现在需要以某种方式获取所有数据并将其存储(可能在一个数组中),以便我可以使用它。 (例如我需要比较某些应用程序并编写代码来记录它。)

我已经尝试了很多我在网上找到的方法,但我不确定我的工作方式是否正确。

我最近的尝试是:

var data = Array();

$("table").each(function(i, v) {
  data[i] = Array();
  $(this).each(function(ii, vv) {
    data[i][ii] = $(this).text();
  });
})

document.write(data);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table id="table">
  <tr>
    <th>1</th>
    <th>2</th>
    <th>3</th>
  </tr>
  <tr>
    <td>4</td>
    <td>5</td>
    <td>6</td>
  </tr>
  <tr>
    <td>7</td>
    <td>8</td>
    <td>9</td>
  </tr>
</table>


<div id="result" style="color: #f00"></div>

输出:

1 2 3 4 6 7 8 9 10 

用这个方法我得到一个数组:

1,2,3,4,5,6,7,8,9,10

但我无法访问存储的值,因为例如 data[0] 输出所有值,而不仅仅是一个。

抱歉,文字太长了

感谢您的帮助:)

亲切的问候, 马库斯

【问题讨论】:

    标签: javascript jquery html


    【解决方案1】:

    您可以尝试使用嵌套的 for 循环并获取嵌套的数据数组。

    let data = [];
    
    $("table tr").each(function() {
      let row = [];
      $(this).children("td").each(function() {
        row.push($(this).text());
      })
      data.push(row);
    })
    
    console.log(data);
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    
    <table id="table">
      <tr>
        <td>1</td>
        <td>2</td>
        <td>3</td>
      </tr>
      <tr>
        <td>4</td>
        <td>6</td>
        <td>7</td>
      </tr>
      <tr>
        <td>8</td>
        <td>9</td>
        <td>10</td>
      </tr>
    </table>

    【讨论】:

      【解决方案2】:

      您需要迭代行并在行内迭代单元格

      您可以通过map() 完成这一切

      var data = $('tr').map(function() {
        return [$(this).children().map(function() {
          return $(this).text().trim()
        }).get()];
      }).get();
      
      
      
      console.log(JSON.stringify(data));
      <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
      <table id="table">
        <tr>
          <td>1</td>
          <td>2</td>
          <td>3</td>
        </tr>
        <tr>
          <td>4</td>
          <td>6</td>
          <td>7</td>
        </tr>
        <tr>
          <td>8</td>
          <td>9</td>
          <td>10</td>
        </tr>
      </table>
      
      
      <div id="result" style="color: #f00"></div>

      【讨论】:

      • 有没有办法按行对值进行排序?那么例如 123、456、789 的 3 个数组?我需要按列获取所有内容。例如 (1,4,7) (2,5,8) (3,6,9)。有什么办法可以做到吗?
      • 脚本的输出是什么?我只看到表格没有任何输出?
      • 按 F12 并查看开发者工具控制台。这就是console.log() 所做的......在那里输出
      【解决方案3】:

      使用each 循环遍历td 并获取其文本值

      var val=[]
      $('#table td').each(function(e){
      val.push($(this).text())
      })
      console.log(val)
      <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.0/jquery.min.js"></script>
      <table id="table">
          <tr>
            <td>1</td>
            <td>2</td>
            <td>3</td>
          </tr>
          <tr>
            <td>4</td>
            <td>6</td>
            <td>7</td>
          </tr>
          <tr>
              <td>8</td>
              <td>9</td>
              <td>10</td>
            </tr>
      </table>

      【讨论】:

      • @House97_ 能否请您验证一下是否是您所期望的结果,谢谢
      • 是的,它有效,但我的问题是:我需要从中获取数据的文件有一个表头(th),但我还需要将它添加到数组中......对不起,我写了一条评论,但不知何故被删除了。有没有办法可以按列对值进行排序?我需要按列获取所有内容。例如 (1,4,7) (2,5,8) (3,6,9)。有什么办法可以做到吗?
      【解决方案4】:

      在下面,我使用 each 函数来导出表的数据,然后推入一个数组列表。我希望这段代码有用。这段代码真的很小。

      var arr = [];
      $("th, td").each(function(){
        arr.push($(this).text());
        $("#result").text(arr);
      });
      <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
      <table id="table">
        <tr>
          <td>1</td>
          <td>2</td>
          <td>3</td>
        </tr>
        <tr>
          <td>4</td>
          <td>6</td>
          <td>7</td>
        </tr>
        <tr>
          <td>8</td>
          <td>9</td>
          <td>10</td>
        </tr>
      </table>
      
      
      <div id="result" style="color: #f00"></div>

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-02-09
        • 2014-11-09
        • 1970-01-01
        • 2014-09-10
        • 1970-01-01
        • 2015-09-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多