获取使用jQuery或js指定行的表的文本值

问题描述 投票:0回答:1

我想逐行获取表的数据,以创建一个字符串,数据用逗号分隔。该表如下所示:

enter image description here

我希望有一个字符串,表格中的数据用逗号(CSV样式)分隔,如下所示:

myText =始终超过要求 - 基准,1,超过一些要求,1,满足要求,2,

表格HTML如下所示:

enter image description here

我尝试了下面的代码,但是我无法获得只有一行的值/文本,然后在同一行中请求下一个单元格,然后跳转到下一行。

console.log($('.sm-data-table-summary').eq(2).text());

但它检索整个页面中找到的第二个元素的所有表数据。

csv_string += ($('.sm-data-table-summary > tbody').prop("innerText") + ',');

但它获取表的所有数据,意味着选项文本+百分比+数值并通过所有选项,而不是让我选择用逗号分隔

$(element).find('.sm-data-table-summary').each(function() {
            console.log($(this).find("tr:nth-child(2)").text());
        });

这最后一个是我最接近我想要的,我得到了页面中找到的每个表的第二个文本,百分比和数值。再一次不让我有机会用逗号分开。

你知道一种方法只获得选项文本,然后是百分比,然后是同一行的数值吗?然后转到下一行?

或者可能是错误的方法。

javascript jquery html
1个回答
0
投票

看看这是否有效:

var els = $(".sm-data-table-summary").find(".label,.sm-data-total").get();
var myText = els.map(function(e) { return $(e).text(); }).join(",");

// debugging
console.log("texts:", myText);
document.body.innerHTML += myText;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table class="sm-data-table-summary" border=1>
  <tr>
    <td><div class="label">a-label</div></td>
    <td>a-percent</td>
    <td><div class="sm-data-total">a-1</div></td>
  </tr>
  <tr>
    <td><div class="label">b-label</div></td>
    <td>b-percent</td>
    <td><div class="sm-data-total">b-1</div></td>
  </tr>
</table>
<hr>

如您所见,这只获得每行的labelsm-data-total。如果你想要百分比,你所要做的就是将参数改为.find()

© www.soinside.com 2019 - 2024. All rights reserved.