Javascript 克隆表并筛选出行

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>

你好,我有一个关于克隆表的问题

我想过滤掉一些特定的结果并输出这些结果。 让我用HTML代码更好地解释自己:

<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我假设您想保留旧表,因为您在标题中写了“克隆”,这就是为什么我建议进行克隆,如果您需要移动行,还应该创建第二个表。