javascript - 如何在 div 父母中获得最后一个孩子?
问题描述
我想让最后一个孩子进入父 div。
实际上,我正在使用这个:
var els = '#first,#second,#third';
$(els).each(function () {
$(this).children().last().addClass('memo');
});
它适用于只有 1 个孩子的 div,但是当最后一个 div 在另一个 div 内的 div 内时,它不起作用。
var els = '#first,#second,#third';
$(els).each(function() {
$(this).children().last().addClass('memo');
});
.memo {
background-color: red
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="first">First text
<div>a</div>
</div>
<div id="second">Second text
<img>b
</div>
<div id="third">Third text
<div>Nested 1
<div>Nested 2
<img>c
</div>
</div>
</div>
如何引用最新的孩子?
解决方案
孩子不同于孙子/后代。 $.children
只看直系子女。
对于您想要的行为,您可以找到在这种情况下使用*
和使用的所有后代last()
,如果您正在寻找每个 , , 中的最后#first
一个#second
后代#third
同样重要的是要提到这将获取最后一个元素子节点,而不是最后一个文本节点。jQuery
无法直接处理文本节点。感谢@TJ克劳德。请参阅如何使用 jQuery 选择文本节点?
$('#first,#second,#third').each(function () {
$(this).find('*').last().addClass('memo');
});
img.memo {
border: 3px solid red;
padding: 5 px;
}
div.memo {
border: 3px solid blue;
padding: 5 px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="first">
<div>a</div>
</div>
<div id="second">
<img>b
</div>
<div id="third">
<div>
<div>
<img>c
</div>
</div>
</div>
推荐阅读
- data-science - K 折交叉验证 多少折?
- react-native - React Native Navigation:重新加载选项卡和侧抽屉时不会触发深层链接事件
- java - jqGrid:来自java spring boot的数据
- javascript - 使用 Jest/Enzyme 访问用 `this` 声明的类对象
- apache-spark - Spark TopK 如何解决这个问题?
- python - 将 pil 与画布一起用于 python tkinter 给出空白图像
- macos - 禁用 NSTextView 的剪辑以混合在视觉效果视图后面
- python - 拆分查询集需要清理数据吗?
- java - Gradle - FatJar - 找不到或加载主类
- python - 拆分文本文件 Python