在每个li文字后添加标签

时间:2018-08-23 09:47:00

标签: jquery

我需要在每个<span>的文本之后而不是在结束的<li>之前添加一个</li>标签!

<ol>
  <li>a</li>
  <li>b
      <ol>
        <li>c</li>
      </ol>
  </li>
  <li>d</li>
</ol>

预期

<ol>
  <li>a<span></span></li>
  <li>b<span></span>
      <ol>
        <li>c<span></span></li>
      </ol>
  </li>
  <li>d<span></span></li>
</ol>

我的尝试

    $('li').each(function() {
    var txtu = $(this).text();
    var htmlu = $(this).html().replace('' + txtu + '', txtu + '<span></span>');
    $(this).html(htmlu);
})

2 个答案:

答案 0 :(得分:2)

请尝试以下代码:-

jQuery('ol li').each(function() {
    if($(this).has('ol').length > 0){
        $(this).children('ol').before('<span></span>');
    }else{
        $(this).append('<span></span>') ;   
    }
});

答案 1 :(得分:0)

使用jquery each循环可完成此操作。

$('ol li').each(function() {
    if($(this).has('ol').length > 0){
        $(this).children('ol').before('<span></span>');
    }else{
        $(this).append('<span></span>') ;   
    }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<ol>
  <li>a</li>
  <li>b
      <ol>
        <li>c</li>
      </ol>
  </li>
  <li>d</li>
</ol>

使用开发者工具栏进行检查,现在在span关闭之前有一个li标记