这些是我需要删除的一些输入字段,但我无法删除标签标记
<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但不删除标签?
任何?
答案 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以来已被删除
您还可以考虑将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>