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

时间:2017-12-20 16:38:16

标签: javascript jquery html

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

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());
        });

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

您是否知道只获取选项文本的方法,然后是百分比,然后是同一行的数值?然后转到下一行?

或许是错误的做法。

1 个答案:

答案 0 :(得分: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()