2010-10-12 2 views
1

Как удалить элемент списка, если он имеет дочернюю ссылку определенного идентификатора? Поэтому, глядя на код ниже, я хотел бы найти <li> с <a> из id=link1 и удалять это li.Удалить элемент, если он имеет дочерний элемент

<li class="nav-tab"> 
    <a href="#link1">Component</a> 
</li> 

Я попытался код ниже, но он не работает:

$(function() { 
    $('.nav-tab:has(#link1)').css('display', 'none'); 
}); 
+0

Это не ссылка 'a id =" link1 "', это якорная ссылка на 'somethingelse id =" link1 "'. – BoltClock

ответ

2

Ваш вопрос и ваш код противоречат друг другу , поэтому я дам ответы на оба случая.

Если вы хотите удалить <li class="nav-tab">, который содержит ребенка <a href="#link1">:

$(function() { 
    $('a[href="#link1"]').parent('li.nav-tab').remove(); 
}); 

Если вы хотите удалить <li class="nav-tab">, который содержит ребенка <a id="link1">:

$(function() { 
    $('a#link1').parent('li.nav-tab').remove(); 
}); 
+0

you ' re right, я был после параметра «href» – mayer

+0

Ответ Ника Крейвера ближе к тому, что вы пробовали, так как вы используете ': has()' кстати. – BoltClock

-1
$(function() { 
    $(".nav-tab > a[id='yourID']").css('display', 'none'); 
}); 

Если на якорь:

$(function() { 
    $(".nav-tab > a[href='yourLink']").css('display', 'none'); 
}); 
+0

Нет, который выбирает и скрывает элементы 'a' в отличие от элементов' li'. – BoltClock

+0

Вы правы, просто скопировали предыдущий, правильный код: '$ (". Nav-tab> a [href = 'yourLink'] "). Ближайший ('li'). Remove()' –

2

Вы можете использовать attribute-equals selector и :has(), чтобы увидеть, содержит ли он элемент, соответствующий этому ... затем просто позвоните .remove().

$("li:has(a[href='#link1'])").remove() 
Смежные вопросы