gpt4 book ai didi

javascript - JQuery 选择器按类别从集合中删除子项

转载 作者:行者123 更新时间:2023-12-02 16:24:02 25 4
gpt4 key购买 nike

这可能是一个简单的问题,当我看到答案时我会觉得很愚蠢,但我不是 javascript 专家,而且我已经为此苦苦挣扎了一段时间。这个问题是基于我试图对 this jQuery plugin HTML-table-to-Excel export library 进行的修改。

该库排除 <tr> 的表行标签有一个特定的类别。但是,我想添加功能,以便它将删除具有该类的其他子元素,而不删除整行(根本问题是我在表格单元格中有按钮,这些按钮在 Web 浏览器中有意义,但在 Excel 中不起作用) 。这是问题的本质形式。

HTML:

<div id="test-div">
<b>Original Table</b>
<table id="test-table">
<tr class="exclude"><td>Exclude this row</td></tr> <!-- this works fine-->
<tr><td>Include this whole row</td></tr>
<tr><td>Include this row <span class="exclude">but not this text</span></td> </tr>
</table>
<hr />
<b>Modified Table</b> <!-- is inserted by jQuery below -->
</div>

和 Jquery:

$("#test-div").append("<table>");
$("#test-table").find("tr").not(".exclude").each(function (i,o) {
$("#test-div").append("<tr>" + $(o).html() + "</tr>"); // <-- how to exclude child span of class "exclude" from this tr?
});
$("#test-div").append("</table>");

这是a JSFiddle 。目标是让文本“但不是这个跨度”不会出现在修改表(即正在导出的内容)中,而不更改原始表(用户正在查看的表)。如果跨度是一个更远的子代,或者它是另一种标签类型(例如,如果它是 <tr><td><div><div class="exclude"> ,则该 div 也应该被排除),它也应该起作用。我尝试过链接各种其他 .not() 方法,或者尝试在另一个 find() 上使用 not:() 选择器,但没有成功。

最佳答案

怎么样this

<div id="test-div">
<b>Original Table</b>
<table id="test-table">
<tr class="exclude"><td>Exclude this row</td></tr>
<tr><td>Include this whole row</td></tr>
<tr><td>Include this row <span class="exclude">but not this text</span></td></tr>
</table>
<hr />
<b id="new-table">Modified Table</b>

</div>

Jquery

var newTable = $("#test-table").clone();
newTable.appendTo("#new-table").html();
$("#new-table *").remove(".exclude");

关于javascript - JQuery 选择器按类别从集合中删除子项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28864609/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com