Javascript 克隆表并筛选出行
你好,我有一个关于克隆表的问题 我想过滤掉一些特定的结果并输出这些结果。 让我用HTML代码更好地解释自己:Javascript 克隆表并筛选出行,javascript,jquery,html,Javascript,Jquery,Html,你好,我有一个关于克隆表的问题 我想过滤掉一些特定的结果并输出这些结果。 让我用HTML代码更好地解释自己: <table class="table table-striped" id="ProfileList2"> <tbody> <tr> <td>21</td> <td>2014-02-28 21:12:12</td>
<table class="table table-striped" id="ProfileList2">
<tbody>
<tr>
<td>21</td>
<td>2014-02-28 21:12:12</td>
<td>20</td>
<td>one</td>
<td>166</td>
</tr>
<tr>
<td>22</td>
<td>2014-03-01 14:04:35</td>
<td>20</td>
<td>one</td>
<td>0</td>
</tr>
<tr>
<td>23</td>
<td>2014-03-03 15:22:56</td>
<td>20</td>
<td>one</td>
<td>21</td>
</tr>
<tr>
<td>24</td>
<td>2014-03-03 17:15:56</td>
<td>20</td>
<td>one</td>
<td>21</td>
</tr>
<tr>
<td>25</td>
<td>2014-03-03 17:50:49</td>
<td>20</td>
<td>one</td>
<td>0</td>
</tr>
<tr>
<td>26</td>
<td>2014-03-05 17:33:42</td>
<td>20</td>
<td>one</td>
<td>24</td>
</tr>
</tbody>
</table>
<p class="result"></p>
此代码将克隆直接副本,而不进行任何筛选。
如果我将clone
函数更改为,例如:find
函数,它将只返回表数据:166 21 24
是否有任何函数可以返回整个表行而不是仅返回表数据
好吧,你可以复制整个内容,然后过滤掉你不喜欢的内容,怎么样
var copy = $("#ProfileList2").clone();
$('p').append(copy);
copy.find("tr td:nth-child(5):contains('0')").parent().remove();
请注意,让多个元素具有相同的id不是一个好主意。好吧,您可以复制整个内容,然后过滤掉您不喜欢的内容,怎么样
var copy = $("#ProfileList2").clone();
$('p').append(copy);
copy.find("tr td:nth-child(5):contains('0')").parent().remove();
请注意,让多个元素具有相同的id不是一个好主意。要获取表行,请更改以下内容:
$mainTable.find("tr td:nth-child(5):not(:contains('0'))")
……为此:
$mainTable.find("tr td:nth-child(5):not(:contains('0'))").parent()
还要注意,根据规范,段落
元素不能包含表格
元素。(尽管大多数浏览器都允许)将其更改为div
会更好
还要注意,contains选择器将在单元格内搜索0,因此它将匹配包含“160”的单元格以及包含“0”的单元格 相反,您可以过滤以仅排除等于“0”的单元格:
要获取表格行,请更改以下内容:
$mainTable.find("tr td:nth-child(5):not(:contains('0'))")
……为此:
$mainTable.find("tr td:nth-child(5):not(:contains('0'))").parent()
还要注意,根据规范,段落
元素不能包含表格
元素。(尽管大多数浏览器都允许)将其更改为div
会更好
还要注意,contains选择器将在单元格内搜索0,因此它将匹配包含“160”的单元格以及包含“0”的单元格 相反,您可以过滤以仅排除等于“0”的单元格:
太棒了!这正是我要找的,我会把它改成
!谢谢你的建议!代替.find(“tr td:nth child(5)”)
可以使用.find(“tr td:last child”)
真棒!这正是我要找的,我会把它改成
!谢谢你的建议!代替.find(“tr td:nth child(5)”)
可以使用.find(“tr td:last child”)
有趣的!)我更喜欢@Rick Hitchcock的方法,但这种方法也很好!谢谢@Rotan075我假设您想保留旧表,因为您在标题中写了“克隆”,这就是为什么我建议克隆,如果您需要移动行,还应该创建第二个表。有趣的是!)我更喜欢@Rick Hitchcock的方法,但这种方法也很好!谢谢@Rotan075我假设您想保留旧表,因为您在标题中写了“克隆”,这就是为什么我建议进行克隆,如果您需要移动行,还应该创建第二个表。