首页 > 解决方案 > 如何从列表项的文本中删除日期

问题描述

在人们提交注册之前,我们的注册网站会提供一个审核页面。审查小组包括他们检查过的所有内容,因此列表是单独的和可变的。每个项目都以令人分心的日期/时间开头,需要隐藏/删除。

I have been successful in removing it for the last item listed but can't get it to look the same for each list item when more than one is selected.

这是选择了三个选项的列表的 HTML:

<ul style="list-style: none;">
  <li>and the sub events
    <ul>
      <li>6/30/2020 9:00 AM - 10:00 AM : Volunteer at North Campus</li>
      <li>6/30/2020 1:00 PM - 2:00 PM : Volunteer at South Campus</li>
      <li>6/30/2020 4:00 PM - 5:00 PM : Volunteer at West Campus</li>
    </ul>
  </li>
</ul>

删除最后一行的日期和时间的脚本是:

$("div[class$=registrationDetails]").find('li').last().each(function() {
    $(this).text( $(this).text().split(':').pop() );
});

如何使所有行都相同?

标签: javascriptjqueryhtml

解决方案


假设整个列表都在div[class$=registrationDetails]div 之内,那么嵌套的<li>元素如果随便 find 就会出问题<li>(外层的find<li>会去掉一堆子元素的文本)。一旦你这样做了,你就不必再抓住“.last()”了。您需要指定只需要内部<li>元素。所以:

去掉.last()并替换.find('li').find('li > ul > li')


推荐阅读