2015-03-05 3 views
2

У меня есть список дивы, подобный следующему:Удалить ДИВ на основе дочернего элемента с помощью JQuery

<div class="row"><a data-card-uid="not me"></a></div> 
<div class="row"><a data-card-uid="not me"></a></div> 
<div class="row"><a data-card-uid="THIS ONE"></a></div> 
<div class="row"><a data-card-uid="not me"></a></div> 
<div class="row"><a data-card-uid="not me"></a></div> 
<div class="row"><a data-card-uid="not me"></a></div> 

Я хотел бы, чтобы удалить DIV, который имеет

data-card-uid="THIS ONE" 

Как я могу сделать это? Я понимаю, вы можете использовать .remove(), чтобы удалить соответствующий div, но я не уверен, как выбрать соответствующий.

ответ

4

Сначала выберите элемент, родитель которого вы хотите удалить, используя Attribute Equals Selector, затем позвоните remove() на parent().

$('[data-card-uid="THIS ONE"]').parent().remove(); 
+0

Есть ли способ, чтобы сделать его более конкретным? Например, если строка div находится внутри таблицы div как это?

row divs are here
rotaercz

+1

Конечно, вы можете расширить селектор. Например. 'div.table> div.row> [data-card-uid =" THIS ONE "]' ('>' выбирает только непосредственных детей - вы можете пропустить это) – aaronk6

+1

использовать 'a' в селекторе для повышения производительности , '$ ('a [data-card-uid =" THIS ONE "]')' В противном случае движок JS должен смотреть на каждый элемент страницы. –

-1

$(document).ready(function() { 
 
    $('[data-card-uid="THIS ONE"]').parent(".row").remove(); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<div class="row"> 
 
    <a data-card-uid="not me">not me</a> 
 
</div> 
 
<div class="row"> 
 
    <a data-card-uid="not me">not me</a> 
 
</div> 
 
<div class="row"> 
 
    <a data-card-uid="THIS ONE">this one</a> 
 
</div> 
 
<div class="row"> 
 
    <a data-card-uid="not me">not me</a> 
 
</div> 
 
<div class="row"> 
 
    <a data-card-uid="not me"></a> 
 
</div> 
 
<div class="row"> 
 
    <a data-card-uid="not me">not me</a> 
 
</div>

+0

Почему downvote? Разве не лучше указать, какой родительский элемент удалить. Кто знает, как изменится структура страницы в будущем. Лучше быть конкретным с самого начала. – roshan

0

, если вы хотите удалить DIV с содержимым имеет данные карт-UID = "ЭТОТ" Использование:

$('[data-card-uid="THIS ONE"]').parent().remove(); 
0

Вы должны удалить родитель. Так

$('[data-card-uid="THIS ONE"]').parent().remove(); 

Посмотри здесь JSFiddle

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