javascript - :nth-child content replacement 更优雅的解决方案

标签 javascript jquery css

我是 jQuery 的新手,我想知道是否有更优雅的解决方案:

$( "ul li:nth-child(1) a span" ).append( "01" );
$( "ul li:nth-child(2) a span" ).append( "02" );
$( "ul li:nth-child(3) a span" ).append( "03" );
$( "ul li:nth-child(4) a span" ).append( "04" );
$( "ul li:nth-child(5) a span" ).append( "05" );
$( "ul li:nth-child(6) a span" ).append( "06" );
$( "ul li:nth-child(7) a span" ).append( "07" );
$( "ul li:nth-child(8) a span" ).append( "08" );
$( "ul li:nth-child(9) a span" ).append( "09" );
$( "ul li:nth-child(10) a span" ).append( "10" );

最佳答案

如果要向 DOM 添加文本,请使用 jQuery:

$( "ul li a span" ).append(function(i){
  return (i+1)<10 ? '0' + (i+1) : i+1;
});

$("ul li a span").append(function(i) {
  return (i + 1) < 10 ? '0' + (i + 1) : i + 1;
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
  <li><a href="#"><span>original span text </span></a>
  </li>
  <li><a href="#"><span>original span text </span></a>
  </li>
  <li><a href="#"><span>original span text </span></a>
  </li>
  <li><a href="#"><span>original span text </span></a>
  </li>
  <li><a href="#"><span>original span text </span></a>
  </li>
  <li><a href="#"><span>original span text </span></a>
  </li>
</ul>

或者,使用 CSS,虽然此文本不存在于 DOM 中,因此无法被选中:

ul {
  counter-reset: spanCount;
}

ul li a span {
  counter-increment: spanCount;
}

ul li a span::after {
  content: counter(spanCount, decimal-leading-zero);
}

ul {
  counter-reset: spanCount;
}
ul li a span {
  counter-increment: spanCount;
}
ul li a span::after {
  content: counter(spanCount, decimal-leading-zero);
}
<ul>
  <li><a href="#"><span>original span text </span></a>
  </li>
  <li><a href="#"><span>original span text </span></a>
  </li>
  <li><a href="#"><span>original span text </span></a>
  </li>
  <li><a href="#"><span>original span text </span></a>
  </li>
  <li><a href="#"><span>original span text </span></a>
  </li>
  <li><a href="#"><span>original span text </span></a>
  </li>
</ul>

关于javascript - :nth-child content replacement 更优雅的解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40235911/

相关文章:

javascript - Bootstrap 4 导航栏不适用于 Angular 路由器链接

javascript - jQuery 列表,样式 <li> 字段

html - 在特定行的元素之后,在 materialize 的页脚中提供额外不需要的空间。想删除它

javascript - 为什么 CodePen 和 Chrome 的传播运算符有不同的结果?

javascript - 在子点击时从父级中删除类 - jQuery

javascript - window.location.href 改为附加或重定向

java - 将系列数据从 Java 传递到多 Y 轴 Highcharts

jquery - 如何使按钮与具有动态添加样式的输入框在同一行

javascript - 为什么我的 Lambda 函数在一次调用中发送了两次 SQS 消息?

javascript - 单击按钮时使用 Javascript 清除多个 ASP 文本框