删除内容时删除 span 标签

Remove span tag when something removed

我有一个 HTML 结构,我想删除一个额外的项目。

<div class="tokenfield form-control">
    <input class="pro-credit-user" name="pro-credit-users[]" placeholder="Person or business name" style="position: absolute; left: -10000px;" tabindex="-1" type="text">
    <input style="position: absolute; left: -10000px;" tabindex="-1" type="text">
    <div class="token invalid">
        <span class="token-label" style="max-width: 152px;">dfgdfgdf</span>
        <a href="#" class="close" tabindex="-1">×</a>
    </div>
    <input class="token-input ui-autocomplete-input" autocomplete="off" placeholder="Person or business name" id="1479230390171168-tokenfield" tabindex="0" style="min-width: 60px; width: 1237.4px;" type="text">
</div>

<a class="delete-pro-credit" href="#">Delete</a>
<span class="pro-credit-error" style="color:red;float:right">Sorry, this user cannot be found. We will not be able to link this persons name with an Enjoius account</span>

我还有jQuery代码:

$("input.pro-credit-user").last().on('tokenfield:removetoken', function (e) {
    $(this).closest('span').remove(); // not working
})

当用户删除令牌时,我还想删除具有 class 'pro-credit-error' 的范围。我已经写了 jQuery 但它不起作用。

如何删除包含 'pro-credit-error' class 的跨度?

closest 通过向上遍历其在 DOM 树中的祖先来工作。在这种情况下,您要删除的 span 不是它的祖先

虽然没有测试你可以试试这个

 $("input.pro-credit-user").last().on('tokenfield:removetoken', function (e) {
              $(this).parent().sibling('span.pro-credit-error').remove();
            })

试试这个

$(this).next('span').remove();

下面的代码适合我:

$("input.pro-credit-user").last().on('tokenfield:removetoken', function (e) {
             $(e.relatedTarget).parent().prev().parent().find('span.pro-credit-error:eq(0)').remove();
            })