【问题标题】:jquery remove div and previous label?jquery删除div和以前的标签?
【发布时间】:2014-12-01 00:46:32
【问题描述】:

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

 <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 而没有删除标签?

有人吗?

【问题讨论】:

  • live...哇...过去的爆炸。 (注意:live 多年前已被弃用,至少一年前已被删除。)
  • @T.J.Crowder 当我访问 SO 时,我几乎每天都会看到 .live() :) 如果我没记错的话,它在 1.7 中已被弃用,并在 1.9 中被删除。

标签: javascript jquery html dom dom-manipulation


【解决方案1】:

那是因为当删除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();
});

【讨论】:

  • Tx Karl 这么简单,但我没看到。您的缝合解决方案看起来像个赢家;)
  • 这是最简单但通常更难找到的东西 ;)
【解决方案2】:

您无法从不再存在的东西中删除prev()...所以最简单的解决方法就是重新排列顺序...

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

此外,如果可能,您可能想要更新您正在使用的 jquery 版本并使用on() 而不是live()live() 自 1.7 起已被弃用,自 1.9 起已被删除

JSFiddle


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

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

这样你就可以做到..

$(this).closest("prfx-row").remove();

JSFiddle

【讨论】:

  • 太棒了! tx alreay gav Karl-Andre 接受的答案抱歉
  • 发送 @smerny 与 . $(this).closest(".prfx-row").remove();你的建议也很有效。
  • @alex 是的,我觉得像这样包装属于一起的内容是一个好习惯。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-05
  • 2011-10-27
  • 2012-02-14
  • 1970-01-01
  • 1970-01-01
  • 2012-05-17
相关资源
最近更新 更多