jquery remove函数不返回替换的html

nzk0hqpo  于 2023-06-22  发布在  jQuery
关注(0)|答案(1)|浏览(118)

我有以下功能。我试图删除所有的<img>标签,只有第二行从表中是在这个数据。代码和选择器在控制台工作正常,但我没有得到结果,在data变量后,取代所有的东西。

function fetchDetails(URLToRead, email) {
        $.get(URLToRead, function (data) {
            console.log(data);
            var imgTags = $(data).find('img');
            $.each(imgTags, function (i,v) {
                $(v).remove();
            });
            $(data).find('table tr:nth-child(2)').remove();
            console.log(data);
        });
    }

URLToRead内容:

<TABLE>
                <TR>
                    <TD>
                        <span></span>
                    </TD>
                </TR>
                <TR>
                    <TD></TD>
                </TR>
                <TR>
                    <TD ><span ></TD>
                </TR>
                <TR>
                    <TD height="12" colSpan="4"><IMG src="../images/spacer.gif" width="20" height="7"></TD>
                </TR>
            </TABLE>
42fyovps

42fyovps1#

问题是.remove()DOM中的元素起作用。您的data永远不会添加到DOM
你可以用display: none创建一个div,然后对它执行所需的操作:

let data = `
<TABLE>
                <TR>
                    <TD>
                        <span></span>
                    </TD>
                </TR>
                <TR>
                    <TD></TD>
                </TR>
                <TR>
                    <TD ><span ></TD>
                </TR>
                <TR>
                    <TD height="12" colSpan="4"><IMG src="../images/spacer.gif" width="20" height="7"></TD>
                </TR>
            </TABLE>
`

let tempDiv = $("<div style='display: none;'></div>")

$("body").append(tempDiv)
$(tempDiv).append(data)

$(tempDiv).find('img').remove();
$(tempDiv).find('table tr:nth-child(2)').remove();

console.log($(tempDiv).html())
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

相关问题