2011-12-02 124 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靠。