删除某些内容时删除span标记

时间:2016-11-15 17:31:41

标签: javascript jquery bootstrap-tokenfield

我有一个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
})

当用户删除令牌时,我还想删除具有“pro-credit-error”类的跨度。我写了jQuery,但它没有用。

如何删除包含“pro-credit-error”类的范围?

3 个答案:

答案 0 :(得分:0)

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

虽然没经过测试,但您可以试试这个

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

答案 1 :(得分:0)

试试这个

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

答案 2 :(得分:0)

以下代码适用于我:

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