如何使用 javascript 删除 <i> 标签

How to remove <i> tag with javascript

我将这个脚本用于我的进度条:

$('.progress-bars li').each(function(i){  
  var percent = $(this).find('.spann').attr('data-width');
  var $endNum = parseInt($(this).find('.spann strong i').text());
  var $that = $(this);

  $(this).find('.spann').animate({
    'width' : percent + '%'
  },1600, function(){
  });

  $(this).find('.spann strong').animate({
    'opacity' : 1
  },1400);  

  $(this).find('.spann strong i').countTo({
    from: 0,
    to: $endNum,
    speed: 1200,
    refreshInterval: 30,
    onComplete: function(){}
  });  

  if(percent == '100'){
    $that.find('.spann strong').addClass('full');
  }     
});   

我使用 <i></i> 标签来查找 countTo 函数的编号。我的问题是我想在 运行ning countTo 脚本之后删除这些 <i> 标签。

示例:

<ul class="progress-bar"> 
    <li>
         <p>Video production</p>
         <div class="bar-wrap"><div class="spann" data-width="100"><strong><i>100</i>% </strong><div class="arrow"></div></div> </div>
    </li> 
    <li>
            <p>IOS Development</p>
            <div class="bar-wrap"><div class="spann" data-width="80"><strong><i>80</i>% </strong><div class="arrow"></div></div> </div>
    </li>
</ul>

在我 运行 脚本之后,我想删除 <i></i> 标签并保留数字。

    var Is = document.querySelector(".progress-bar").querySelectorAll("i");
    Array.prototype.map.call(Is, function(element){
        var content = element.childNodes[0];
        element.parentNode.replaceChild(content, element);
    });
<ul class="progress-bar"> 
    <li>
         <p>Video production</p>
         <div class="bar-wrap"><div class="spann" data-width="100"><strong><i>100</i>% </strong><div class="arrow"></div></div> </div>
    </li> 
    <li>
            <p>IOS Development</p>
            <div class="bar-wrap"><div class="spann" data-width="80"><strong><i>80</i>% </strong><div class="arrow"></div></div> </div>
    </li>
</ul>

这将搜索进度条内的所有 i-元素,遍历它们并删除它们,同时将内容附加到 i-元素的父元素。

您可以在调用 countTo 脚本后使用这一行代码:

$( "i" ).contents().unwrap();

这将选择所有 <i> 标签。 .contents() 获取 <i> 中的文本,.unwrap() 删除内容的父级,即 <i> 标签。