Mam następującą funkcję. Próbuję usunąć wszystkie znaczniki <img> i tylko drugi wiersz z tabeli, który znajduje się w tych danych. Kod i selektory działają dobrze w konsoli, ale nie otrzymuję wyniku data zmiennej po wymianie wszystkich rzeczy.

 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 Zawartość:

<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>
1
Rahyab Ahmed 2 kwiecień 2020, 17:40

1 odpowiedź

Najlepsza odpowiedź

Problem polega na tym, że .remove() działa na elementach, które są w DOM. Twój data nigdy nie jest dodawany do DOM.

Możesz utworzyć div z display: none, a następnie wykonaj potrzebne operacje:

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>
3
Anurag Srivastava 2 kwiecień 2020, 15:10