我希望逐行获取表的数据,以创建一个以逗号分隔的数据字符串。 该表如下所示:
我想要一个包含表格数据的字符串,用逗号(CSV样式)分隔,如下所示:
myText =始终超出要求 - 基准,1,超出一些要求,1,满足要求,2,
表格HTML如下所示:
我尝试了以下代码但是我无法获得只有一行的值/文本,然后在同一行中请求下一个单元格,然后跳转到下一行。
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());
});
这最后一个是我最接近我想要的,我得到了页面中找到的每个表的第二文本,百分比和数值。再一次不让我有机会用逗号分开。
您是否知道只获取选项文本的方法,然后是百分比,然后是同一行的数值?然后转到下一行?
或许是错误的做法。
答案 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>
如您所见,这只会得到每行的label
和sm-data-total
。如果您想要百分比,您只需将参数更改为.find()
。