jquery删除div和以前的标签?

时间:2014-10-06 17:35:18

标签: javascript jquery html dom dom-manipulation

这些是我需要删除的一些输入字段,但我无法删除标签标记

 <label class="prfx-row-title">Unique Selling Proposition </label>
 <div class="prfx-row-content">
     <input type="text" name="dynamic_usp[0][text]" placeholder="unique selling proposition " value="testing hello world" />
     <span class="remove button">Remove USP</span>
 </div>

$(".remove").live('click', function() {
            $(this).parent().remove();
            $(this).parent().prev('label.prfx-row-title').remove();
        });

现在只删除div但不删除标签?

任何?

2 个答案:

答案 0 :(得分:6)

那是因为当删除div时,它不再位于DOM中,因此标签不再是兄弟姐妹了。首先删除标签,然后删除div

$(".remove").live('click', function() {
     $(this).parent().prev('label.prfx-row-title').remove();
     $(this).parent().remove();
});

或更好:

$(".remove").live('click', function() {
     $(this).parent().prev('label.prfx-row-title').remove()
     .end().remove();
});

答案 1 :(得分:4)

您无法从不再存在的内容中删除prev() ...所以最简单的修复只是重新安排订单...

$(".remove").live('click', function () {
    $(this).parent().prev('label.prfx-row-title').remove();
    $(this).parent().remove();
});

此外,如果可能,您可能希望更新正在使用的jquery版本,并使用on()而不是live()。 {1.7}自1.7以来已被弃用,自1.9以来已被删除

JSFiddle


您还可以考虑将DOM更改为......

live()

那样你就可以做..

<div class="prfx-row">
    <label class="prfx-row-title">Unique Selling Proposition</label>
    <div class="prfx-row-content">
        <input type="text" name="dynamic_usp[0][text]" placeholder="unique selling proposition " value="testing hello world" /><span class="remove button">Remove USP</span>

    </div>
</div>

JSFiddle