如何在jquery中获取$(this)的特定上层建筑?

问题描述 投票:-1回答:1

我有以下的html。

<div class="new-row>
   <img class="trash" src = "trash.png">
   <img class="trash" src = "trash.png">
</div>
<div class="new-row>
    <img class="trash" src = "trash.png">
    <img class="trash" src = "trash.png">
</div>

我也有以下的jquery代码

$(".trash").on("click",trashClicked);

我怎样才能得到每个新行类中的(".trash")数量。我不想得到类垃圾的所有img标签的数量,我想知道在特定的新行类中点击垃圾图片时,类垃圾的具体数量。我想知道当垃圾图片在特定的新行中被点击时,类垃圾的图片标签的具体数量。

jquery this
1个回答
3
投票

内页 trashClicked, this 将指具体的 img 被点击的。您可以从那里计算出有多少个 .trash img的有在该行。

  1. 你的 img 元素是彼此的兄弟姐妹,所以你可以使用 siblings:

    var count = $(this).siblings().length + 1; // + 1 for the one we're calling it on
    
  2. 一个更普遍的解决办法是使用 closest 找出包围圈 .new-row,然后 find 找到所有的 .trash 元素,即使它们的层次不同。

    var count = $(this).closest(".new-row").find(".trash).length;
    

它是 值得 你可以花点时间从头到尾读一遍jQuery API。它不需要太长的时间,而且几乎立刻就能回报你所花费的时间。

© www.soinside.com 2019 - 2024. All rights reserved.