使用jquery删除元素img

时间:2011-12-02 14:55:23

标签: jquery

我有这个HTML:

<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>

我想删除除第一个之外的所有img元素的li。 在HTML文档中,还有许多其他liinputimg元素。

我唯一拥有的是输入的名称(myName)。

我试过了:

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

要删除所有img,但它不起作用(首先我要删除所有内容,然后除第一个外全部删除)

3 个答案:

答案 0 :(得分:3)

要从大于索引0的每个列表项中删除图像,您可以执行以下操作:

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

如果您只想删除单选按钮的兄弟图像,您可以检查兄弟姐妹并从中删除:

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

答案 1 :(得分:1)

您的代码会删除类resetRadio的无线电按钮的父母 - 这是您没有的。您希望删除所述父母的子女 - 使用班级resetRadio。 改进你的第二行以反映这个逻辑:

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

删除除第一个更改第一行以外的所有内容:

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

答案 2 :(得分:0)

除了第一个li元素外,这将删除所有li元素直接后代的图像。

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

请注意,它使用了有效的CSS选择器,因此您可能希望使用CSS

隐藏图像
li:not(:first-child) > img {
    display: none;
}

所以你不会只依靠JS。