2012-08-08 48 views
1

所以說我有:如何刪除包含特定孩子的li?

<li> 
    <span id="foo">bar</span> 
</li> 

<li> 
    <span id="abc">123</span> 
</li> 

,我想刪除與子「跨度ID = foo」的李。我如何用JQuery來做到這一點?

我想是這樣的:

$("li:has(span[id=foo])").remove(); 

似乎沒有工作...有什麼想法?謝謝!

+0

是的,這就是他*想要*做的。 – 2012-08-08 19:37:58

+0

是的,我與其他一些線路問題混淆,現在都很好。 – eastboundr 2012-08-08 19:49:17

回答

4

就試試這個:

$("li:has(span#foo)").remove(); 

DEMO

但好像你的代碼是剛剛工作的罰款。 See here

+0

我從來沒有想過*檢查*他的原始代碼;我只是認爲這是一個jQuery的怪癖,使一個看似有效的選擇器失敗。 Tsk ... +1 – 2012-08-08 19:40:00

+0

感謝是的代碼確實工作。我在我的項目中將這個問題與其他一些線路混淆了。感謝您指出。 – eastboundr 2012-08-08 19:48:12

+0

@eastboundr歡迎 – thecodeparadox 2012-08-08 19:50:56

4

選擇子,不是父:

$('#foo').closest('li').remove(); 

JS Fiddle demo

或者:

$('li:has(#foo)').remove(); 

JS Fiddle demo

參考文獻:

+0

沒問題!光明的一面,你至少已經縮小了實際問題的可能性。 =) – 2012-08-08 19:51:00

+0

事實上,確實=) – eastboundr 2012-08-08 19:55:30