javascript - 如何获取每个匹配元素的特定子元素的数量
问题描述
如何获取每个匹配的父元素的匹配子元素的数量?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>
推荐阅读
- javascript - 自动设置输入值
- google-chrome - 用户使用 chrome.identity.launchWebAuthFlow 登录后,如何在过期前获得新的访问令牌?
- android - 尝试获取“BottomNavigationView”的布局参数时应用程序崩溃
- matlab - 三次样条 MATLAB 错误结果
- python - Python requests.post 代码将结果限制为 200。如何调整代码以获得所有 1000+ 的结果?
- html - 为什么我的视频没有显示?
- c++ - 为什么我能够更改作为常量引用传递的对象的成员?
- scala - 如何从 spark DataFrame 中获取所有行?
- algorithm - 如何查找目的地和源之间的距离是否小于5?
- c++ - 一个参数构造函数如何工作?