使用特定列中的值过滤表

时间:2016-08-18 03:37:18

标签: javascript html filter html-table

我正在尝试使用javascript过滤表格,只显示有超过5个播种机的行。这是一个JSFiddle的链接,带有一个表的例子。

http://jsfiddle.net/xQB4Z/566/

一行示例:

<td align=left width=500><NOBR><a href="download.php?id=1241487&SSL=1"><img style="position: relative; top: 2px;" src="themes/classic/pic/download.gif.pagespeed.ce.6SI31hDpjb.gif" border="0"></a>&nbsp;<a class="index" href="details.php?id=1241487&amp;hit=1">CENTOS 4</a> (<b><font color="red">NEW!</font></b>)</NOBR><br/><font size=1 color='666666'><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Uploaded 13 m, 44 seconds after pre</i></font></td>
<td align="right"><b><a href="details.php?id=1241487&amp;hit=1&amp;filelist=1">78</a></b></td>
<td align="right">0</td>
<td align=center><nobr>2016-08-17<br/>23:23:27</nobr></td>
<td align=center>----</td>
<td align=center>6.64<br/>GB</td>
<td align=center>----</td>
<td align="right"><span class="green">2</span></td>
<td align="right"><span class="green">2</span></td>
</tr>

2 个答案:

答案 0 :(得分:1)

这里有一些简单的开始:

var rows = document.getElementById("yourTableId").querySelectorAll("tr");

for (var i = 1; i < rows.length; i++) { // start at row 1 to skip header
  if (+rows[i].cells[8].textContent <= 5)
    rows[i].style.display = "none";
}

演示:http://jsfiddle.net/xQB4Z/568/

注意:我给你的表一个id。您可以使用document.querySelector("table")来获取页面上的第一个表格。

答案 1 :(得分:0)

您可以这样做:

Array.from(document.querySelectorAll("tr")).forEach(function(v, k){
    var seeders = v.querySelectorAll("td")[8].textContent;
    if(seeders < 5){
        v.style.display = "none";
    }
});

这将检查每行中第9列的内容,如果此列中的值小于5,则隐藏该行。

DEMO