2011-12-02 232 views
2

的img我有這樣的HTML:刪除元素使用jQuery

<li> 
    <input type="radio" class="checkbox" name="myName" id="Id001"/> 
    One 
    <img class="resetRadio" src="star.png"/> 
</li> 
<li> 
    <input type="radio" class="checkbox" name="myName" id="Id002"/> 
    Two 
    <img class="resetRadio" src="star.png"/> 
</li> 
<li> 
    <input type="radio" class="checkbox" name="myName" id="Id003"/> 
    Three 
    <img class="resetRadio" src="star.png"/> 
</li> 

而且我要刪除所有li元素的img除了第一個。 在HTML文檔中有很多其他的li,inputimg元素。

我唯一擁有的是輸入的名字(myName)。

我想:

var radios = $(':radio[name="myName"]'); 
radios.parent().remove(".resetRadio"); 

要刪除所有img但它不能正常工作(首先我要刪除所有,那麼所有除了第一個)

回答

1

你的代碼將刪除類別爲resetRadio的單選按鈕的父母 - 你沒有。你想刪除父母的孩子 - 與類resetRadio。 完善您的第二行以反映此邏輯:

radios.parent().find(".resetRadio").remove(); 

刪除所有,但首先改變第一行:

var radios = $(':radio[name="myName"]:gt(0)'); 
+0

謝謝。這很好用jQuery我快速獲得一個答案在stackoverflow :) – Snote

3

從每個列表項中刪除圖像大於指數爲0,你可以做到以下幾點:

$("li:gt(0) img.resetRadio").remove(); 

如果你只是想刪除的單選按鈕的兄弟姐妹的圖像,你可以檢查的兄弟姐妹並從該除去:

$(":radio[name=myName]").nextAll("img.resetRadio").remove(); 
0

這將刪除全部是直系後代li元件,除了第一li元件的圖像。

$('li:not(:first-child) > img').remove() 

注意,它使用一個有效的CSS選擇器,讓你可以隨心所欲做隱藏使用CSS圖像與

li:not(:first-child) > img { 
    display: none; 
} 

這樣你不僅會在JS靠。