【问题标题】:How can i change the li items to div? javascript如何将 li 项目更改为 div? javascript
【发布时间】:2019-07-10 12:22:04
【问题描述】:

我有一个 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

【问题讨论】:

  • 注意&lt;div&gt; 作为&lt;ul&gt; 的直接子代是invalid html。想要这样做有什么特别的原因吗?
  • 也可以将 ul 更改为 div,或者将 ul 更改为 div,将 li 更改为 p,我不希望该项目中 li 的样式,而 joomla 正在这样做,没有任何更改选项。
  • 为什么不使用 CSS 以您想要的方式设置列表样式?

标签: javascript jquery html html-lists


【解决方案1】:

正如我在评论中提到的,确保您替换 UL 以确保您在完成后仍然拥有有效的 HTML。无论如何,既然你已经在使用 jQuery,你可以这样做;

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

如果您更愿意使用 vanilla 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 的父级为目标。

【讨论】:

  • @David 抱歉,我错过了一个非常重要的部分。我已经更新了我的答案以包括缺少的行。 Fork of your fiddle.
猜你喜欢
  • 1970-01-01
  • 2020-04-17
  • 2018-06-13
  • 1970-01-01
  • 2013-05-03
  • 2014-11-27
  • 2014-11-02
  • 2010-09-15
  • 1970-01-01
相关资源
最近更新 更多