用jquery替换html标记

时间:2017-05-27 18:31:21

标签: javascript jquery

我想用ol(无序列表)替换所有ul(有序列表)标记。它可以工作,但是当它实际上交换时,则会编写一个新的东西并假设您想要添加到列表中,但事实并非如此。因此,我认为代码有问题。

$(document).ready(function() {
    $('ol').replaceWith( "<ul>" + $('ol').html() + "</ul>" );
});

基本上,它正在工作,但这一行不允许我添加新的列表对象。

3 个答案:

答案 0 :(得分:1)

这很简单,你甚至不必使用jQuery。

var ol = document.querySelector('ol');
ol.outerHTML = ol.outerHTML.replace(/ol/, 'ul');

如果您想将{strong>每个 ol标记替换为ul,则需要使用querySelectorAll()并运行循环。例如:

var ol = document.querySelectorAll('ol');
for(var i = 0; i < ol.length; i++) {
    ol[i].outerHTML = ol[i].outerHTML.replace(/ol/, 'ul');
}

Fiddle 1Fiddle 2

答案 1 :(得分:0)

$.each($('ol'), function(ind) {
  $(this).replaceWith("<ul>" + $(this).html() + "</ul>");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ol>
  <li>1</li>
  <li>2</li>
</ol>

<ol>
  <li>First</li>
  <li>Second</li>
</ol>

答案 2 :(得分:0)

替换您在DOM中已创建的元素上执行的操作。如果你将新元素添加为无序列表,那么它将作为无序列表。所以每次添加新元素时,都必须调用replace方法替换为有序列表