我想用ul
(无序列表)替换所有ol
(有序列表)标签。它可以工作,但是当它实际上进行交换时,则会写入一个新事物,并假设您想要添加到列表中,但事实并非如此。因此,我认为代码有问题。用jquery替换html标签
$(document).ready(function() {
$('ol').replaceWith("<ul>" + $('ol').html() + "</ul>");
});
本质上,它的工作,但这一行不让我添加新的列表对象。
我想用ul
(无序列表)替换所有ol
(有序列表)标签。它可以工作,但是当它实际上进行交换时,则会写入一个新事物,并假设您想要添加到列表中,但事实并非如此。因此,我认为代码有问题。用jquery替换html标签
$(document).ready(function() {
$('ol').replaceWith("<ul>" + $('ol').html() + "</ul>");
});
本质上,它的工作,但这一行不让我添加新的列表对象。
$.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>
这很容易,你甚至不必使用jQuery。
var ol = document.querySelector('ol');
ol.outerHTML = ol.outerHTML.replace(/ol/, 'ul');
如果你想与ul
更换每ol
标签,你需要使用querySelectorAll()
和运行一个循环。例如:
var ol = document.querySelectorAll('ol');
for(var i = 0; i < ol.length; i++) {
ol[i].outerHTML = ol[i].outerHTML.replace(/ol/, 'ul');
}
你需要'querySelectorAll'来取代所有这些 – quirimmo
@quirimmo真的,但是这个操作并没有提到他们所有的东西。无论如何,我会更新它 – natanelg97
替换操作,你正在做的这是已经在DOM创建的元素。如果将新元素添加为无序列表,那么它将以无序列表形式出现。因此,每次添加新元素时,都必须调用替换方法来替换为已排序列表
你如何添加新列表对象,你能否请求显示*全部*“* [mcve] *”代码来重现你的问题? –
你想用'ul'替代**每个**'ol'标签,还是仅仅指定一个? – natanelg97