如果等于变量,则删除节点子节点

问题描述

如果 li 节点等于特定变量,我将尝试删除它。 例如

然后我想删除这个节点。我无法为节点设置 ID。这是设置子节点的代码

 $('#typing').append($('<li>').text(username + "is drawing..."));

这是我用来尝试删除特定节点的代码

if ($('<li>'.text == username + " is drawing...")){
           console.log("its the same!");
           $("<li>").remove();
           prev_username = "";
       }
    });

在这代码中,它打印出“相同”,因此它只是实际删除节点的操作。任何人都可以帮助我解决这个问题,我将不胜感激。 谢谢:)

解决方法

您的 if 语句将始终为 true,因为它正在测试一个 jQuery 对象,无论它如何构造都是真实的。

您可以使用像 contains 这样的选择器来查找您要查找的 li。

var username = 'Jefferey John Smith';

$('#typing').append($('<li>').text(username + " is drawing..."));

$('button').click(function(){
    $('li:contains('+ username + ' is drawing...)').remove();
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul id="typing">
    <li>Musa is typing...
</ul>
<button>Clear Jefferey John Smith</button>