2015-12-15 8 views
1

Итак, у меня есть система, которую пользователь сайта может создать div, и все эти div получат разные имена классов, при этом все эти div также создадут кнопку удаления с тем же класс. Как удалить кнопку и div с тем же классом, нажав на кнопку.Как удалить все элементы с тем же классом

Я figure'd это было бы что-то вроде этого:

$("div.Test").remove(); 

только чем с этим тегом.

+0

И как выглядит код, который создает эти элементы? – adeneo

ответ

2

В событии нажатия вашей кнопки:

var thisClass = $(this).attr("class"); 
$('div.' + thisClass).remove(); 
+0

Это сработало для меня –

+0

Точно как вы напишете событие щелчка динамически созданной кнопки. вы предположили бы, что у него нет других кнопок на странице и прикрепить его ко всем кнопкам? –

+0

Предполагая, что у него есть привязка к событию, уже выяснено. Один из способов - дать всем кнопкам общий класс, а затем привязать событие к этому классу. – jtrohde

0
$("button").click(function(){ 

    $("div."+$(this).attr('class')).remove(); 
    // $("."+$(this).attr('class')).remove(); to remove both button and div 

}); 

Предполагая, что button имеет только одно имя класса, что тоже совпадает с именем класса дел.

+0

Предполагается, что на странице нет других кнопок, кроме тех, которые динамически добавляются пользователем при создании div. Он также не удаляет кнопку сам по просьбе OP. Но если вы добавите $ (this) .remove(), сколько кнопок вы будете удалять? –

+0

1. «Кнопка» может быть легко заменена любым селектором. 2. Посмотрите на комментарий, который я упомянул в ответ. – void

0

Вам нужно выбрать все кнопки. Я бы создал кнопки с классом, который вы можете использовать для доступа, и использовать атрибут data, чтобы удерживать класс удаляемых div. как это:

<button class="remove-btn" data-remove="div-class">Remove</button> 

Затем вы можете сделать что-то вроде этого:

$(function(){ 
    $('.remove-btn').on("click", (function(){ 
     var remove = $(this).data('remove'); 
     $('.' + remove).remove(); 
     $(this).remove(); 
    }); 
}); 
0

Сначала вам нужно получить класс кнопки вы нажали, затем найдите div с тем же классом и удалите его. Позже, просто удалите кнопку, на которую вы нажали:

$("#your-button-id").click(function() { 
    var className = $(this).attr('class'); // find the button class 
    $('div.' + className).remove(); // remove the div with the same class as the button 
    $(this).remove(); // remove the button 
}); 
+0

За исключением того, что кнопки создаются динамически вместе с div, поэтому OP не знает идентификатор кнопки, к которой будет прикрепляться событие клика. –

Смежные вопросы