Как я могу изменить элементы li на div?Javascript - PullRequest
1 голос
/ 10 июля 2019

У меня есть класс ul для меню, которое Joomla создает на моем сайте, но я не хочу, чтобы элементы li были внутри, я хочу преобразовать их в div

<ul class="uk-nav uk-nav-default uk-nav-parent-icon uk-nav-accordion" uk-nav="">

<li><a href="/aviso-legal">Aviso legal</a></li>
<li><a href="/politica-de-privacidad">Política de privacidad</a></li>
<li><a href="/politica-de-cookies">Política de cookies</a></li></ul>

Я пробую это:

content.find(".uk-nav li>div").unwrap().wrap("<div>");

В конце я хочу получить следующее:

<ul class="uk-nav uk-nav-default uk-nav-parent-icon uk-nav-accordion" uk-nav="">

<div><a href="/aviso-legal">Aviso legal</a></div>
<div><a href="/politica-de-privacidad">Política de privacidad</a></div>
<div><a href="/politica-de-cookies">Política de cookies</a></div></ul>

http://jsfiddle.net/vyfx1L8w/ Также можно изменить ul на div, или ul на div и li на p

1 Ответ

0 голосов
/ 10 июля 2019

Как уже упоминалось в моем комментарии, убедитесь, что вы также заменили UL, чтобы убедиться, что у вас еще есть действительный HTML, когда вы закончите. В любом случае, поскольку вы уже используете jQuery, вы можете сделать это;

let content = $(".uk-nav").html();
content = content.replace(/<li>/g, "<div>");  
content = content.replace(/<\/li>/g,"<div>"); 
$(".uk-nav").html(content);

Если вы предпочитаете делать это с ванильным JavaScript, это тоже вариант;

let content = document.querySelector('.uk-nav').innerHTML;
content = content.replace(/<li>/g, "<div>");  
content = content.replace(/<\/li>/g,"<div>"); 
document.querySelector('.uk-nav').innerHTML = content;

Чтобы изменить UL на div, сделайте то же самое, но нацельтесь на родителя UL.

...