javascript - 使用 JQuery 隐藏字符串开头的文本
问题描述
我有一个网络托管软件,我需要在我的字符串开头公开某种排序值,以使项目以正确的顺序出现。该软件将自动按字母顺序对值进行排序,因此我计算了一个排序值,现在输出按年龄顺序很好地排序,如下所示:
- 001岁的大卫
- 033岁的安娜贝尔
- 055岁的卡罗尔
- 065岁的比尔
我想允许软件使用这些值对值进行排序,但我希望浏览器只实际显示人名:
- 大卫
- 安娜贝尔
- 颂歌
- 账单
我想知道是否可以在 JQuery 中编写一个脚本来侦听包含“Years Old”的文本,然后将前 14 个字符从显示中删除,例如类似
$(".DIV:contains(' Years Old ')").html(
//Here I would like to show only the text after the first 14 characters
);
如果有人对如何实现上述目标有任何想法或对如何实现它有更好的想法,那么我将非常感谢您的意见!
解决方案
要从div
文本中删除前 14 个字符,您可以提供一个text()
接受当前文本值作为参数的函数。然后您可以使用substring()
删除前 N 个字符并返回结果来更新元素。试试这个:
$('div').text((i, t) => t.substring(14));
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div>001 Years Old David</div>
<div>033 Years Old Annabelle</div>
<div>055 Years Old Carol</div>
<div>065 Years Old Bill</div>
然而值得注意的是,这不是一个最佳解决方案。data
假设可能,更好的方法是将排序索引放入div
. 然后,您可以简单地订购,而不必担心事后修改文本。像这样的东西:
$('#container div').sort((a, b) => $(a).data('order') < $(b).data('order') ? -1 : 1).appendTo('#container');
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="container">
<div data-order="65">Bill</div>
<div data-order="55">Carol</div>
<div data-order="1">David</div>
<div data-order="33">Annabelle</div>
</div>
推荐阅读
- javascript - 我正在尝试修复此错误,但没有任何效果
- apollo-client - 使用`createMockClient` 测试非反应代码?
- c# - C# 两位小数
- python - shapely.validation.make_valid 与 ValueError 与无效的 LinearRing 崩溃
- javascript - 带缓存的 Javascript 数字计数器
- angular - 角度刷新表(数据源)
- c# - 将我的 Appsettings 部分中的部分绑定到字典
- laravel-5.8 - 如何在 Laravel 表单验证中仅传递数组的有效对象?
- c - 如何从这种输入格式中提取数字?
- virtual-machine - 如何在 VMware Workstation Pro 15.0 中启用 VMware kvm 模式下的共享文件夹