用jQuery将所有的<ol>替换为<ul>

3

给定以下DOM结构,我想将有序列表转换为无序列表。

<div class="wrapper"> 
  <ol>
    <li><div>foo</div></li>
    <ol>
      <li><div>bar</div></li>
    </ol>
    <li><div>batz</div></li>
  </ol>
</div>

什么是最佳方法来实现这个?

不需要基于你的示例使用正则表达式。 - j08691
2
当您尝试解析HTML或XML时,正则表达式并不是一个好的解决方案:https://dev59.com/X3I-5IYBdhLWcg3wq6do - Renato Lochetti
我认为使用正则表达式获取字符串并替换它可能比使用jQuery更快。 - supernova
1
@supernova 只有在存在性能问题时才需要关注性能问题。 - user166390
这个问题中有一些很好的答案:https://dev59.com/W2w05IYBdhLWcg3wrDtS#12510109 - FixMaker
2个回答

4

好的,我需要从内部到外部进行操作。仅仅使用replaceWith无法起作用,因为它只替换了外部标签而没有替换内部标签,所以我这样解决了:

$($('.wrapper').find('ol').get().reverse()).each(function(){
  $(this).replaceWith($('<ul>'+$(this).html()+'</ul>'))
})

如果有更好的解决方案,我很乐意听取。


4

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接