Удалить тег span, когда что-то удалено

У меня есть структура 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
})

Когда пользователь удаляет токен, я также хотел удалить диапазон с классом «про-кредит-ошибка». Я написал jQuery, но он не работает.

Как я могу удалить этот диапазон, который содержит класс «про-кредит-ошибка»?


person Pratik Patel    schedule 15.11.2016    source источник
comment
В вашем коде .pro-credit-user нет родительского элемента span?   -  person adeneo    schedule 15.11.2016
comment
Что такое 'tokenfield:removetoken'?   -  person j08691    schedule 15.11.2016
comment
@ j08691 это связано с sliptree.github.io/bootstrap-tokenfield/#examples   -  person Pratik Patel    schedule 16.11.2016


Ответы (3)


closest работают, проходя через своих предков в дереве DOM. В этом случае span, который вы хотите удалить, не является его предком

Хотя это не проверено, вы можете попробовать это

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

Ниже код работает для меня:

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

Попробуй это

$(this).next('span').remove();
person Muhammad Akif    schedule 15.11.2016
comment
Входы не имеют потомков - person adeneo; 15.11.2016
comment
Вы хотите удалить диапазон внутри этого div? ‹div class=токен недействителен› ‹span class=token-label style=max-width: 152px;›dfgdfgdf‹/span› ‹a href=# class=close tabindex=-1›×‹/a› ‹/div› - person Muhammad Akif; 15.11.2016
comment
Я хочу удалить последний диапазон - person Pratik Patel; 16.11.2016