【问题标题】:jquery how to remove a instance of a div if 2 are present?如果存在 2,jquery 如何删除 div 的实例?
【发布时间】:2011-04-04 23:16:11
【问题描述】:

这个问题听起来有点令人困惑,但这是我所拥有的:

<div id="type2">
<img class="profile-img" src="75.jpg">
</div>

点击后变成这样:

<div id="type2">
<img class="profile-img" src="75.jpg">
<img class="profile-img" src="76.jpg">
</div>

我想要的是删除第一个 img 实例(如果存在两个)。 基本上变成:

<div id="type2">
<img class="profile-img" src="76.jpg">
</div>

我试过了:

    if (item.lenght == 2) {
$('#type2').find('.profile-img:first').remove();
}

但它似乎不起作用 谢谢

编辑:

谢谢大家。这个答案对我有用:

if ($('#type2').find('.profile-img').size() >= 2) {
$('#type2').find('.profile-img:first').remove();
}

我确实拼错了length,但仍然不想工作:)

【问题讨论】:

    标签: jquery filter find


    【解决方案1】:

    代码$('#type2').find('.profile-img:first').remove(); 肯定会删除#type2 选择器中具有profile-img 类的第一个元素,所以其他地方的东西都坏了。

    仅仅是因为您在item.lenght 中拼错了length 属性吗?

    【讨论】:

    • 是的,我也这么认为。他的选择器很好,正如你指出的那样,他拼错了“长度”
    【解决方案2】:

    这应该可以工作

    if ($('#type2').find('.profile-img').size() >= 2) {
      $('#type2').find('.profile-img:first').remove();
    }
    

    【讨论】:

      【解决方案3】:

      这应该可行:

      $('.profile-img','#type2').eq(0).remove();
      

      $('.profile-img','#type2').first().remove();
      

      $('#type2 .profile-img:first').remove();
      

      $('.profile-img:first','#type2').remove();
      

      【讨论】:

      • eq(0) 在代码的某些部分对我有用,而 ('nth-child(1)') 在代码的其他部分对我有用。
      【解决方案4】:

      您的方式应该可以正常工作。我猜问题是错字“长度”:

      if (item.length == 2) {
          $('#type2').find('.profile-img:first').remove();
      }
      

      当然假设 item 已定义且长度正好为 2。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-01-12
        相关资源
        最近更新 更多