繁体   English   中英

如何获取每个匹配元素的特定子元素的数量

[英]How to get the number of particular child elements for each matched element

如何获取每个匹配的父元素的匹配子元素的数量? HTML:

<div class="parent">
   Today I've eaten <mark>potatoes</mark>
</div>
<div class="parent"> 
   Yesterday I <mark>jumped</mark> and <mark>educated</mark> myself.
</div>

JS(jQuery):

var context = $(".parent");
var amountOfMarksInside = context.each().has("mark").children("mark").length;

这个想法是在循环遍历“父”类的所有父时,获取特定父内的标记数。 我该怎么做? JS 和 jQuery 解决方案都受到赞赏。

要获得特定的父级,您需要将一个事件处理程序附加到它,以便获得可用于选择子mark元素的参考。 在下面的示例中,我使用了click ,但任何事件都可以工作。

 $('.parent').on('click', e => { let numMarks = $(e.currentTarget).children('mark').length; console.log(numMarks); });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="parent"> Today I've eaten <mark>potatoes</mark> </div> <div class="parent"> Yesterday I <mark>jumped</mark> and <mark>educated</mark> myself. </div>

或者,如果您想获取所有.parent元素的计数,您可以使用循环。 map()隐式执行此操作:

 let numMarks = $('.parent').map((i, el) => $(el).children('mark').length).get(); console.log(numMarks);
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="parent"> Today I've eaten <mark>potatoes</mark> </div> <div class="parent"> Yesterday I <mark>jumped</mark> and <mark>educated</mark> myself. </div>

您可以使用 vanilla JS 实现这一点,不需要 Jquery。 只需像这样获取父类中的所有标记标签。

 console.log(document.querySelectorAll('.parent mark').length)
 <div class="parent"> Today I've eaten <mark>potatoes</mark> </div> <div class="parent"> Yesterday I <mark>jumped</mark> and <mark>educated</mark> myself. </div>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM