【发布时间】:2023-03-14 07:01:01
【问题描述】:
我有一个具有以下菜单结构的菜单:
<nav>
<ul>
</ul>
</nav>
使用此功能,我试图将页面中的所有标题复制到菜单中。
$('.pagetitle').each(function() {
var titles = $(this).contents().clone();
$('nav ul').html('<li><a>' + titles + '</a></li>');
});
不添加 li 和 a 标签但在我的菜单中预定义 html 标签,它工作得很好,但我必须通过这个函数创建它们,因为我不知道页面上会有多少标题。
我读过这篇文章:jQuery each returns [object Object] 并且变得更聪明了,但它并没有解决我的问题。如果有人能解释一下为什么会这样,那就太好了!
【问题讨论】:
-
.pagetitle元素是什么样的? -
titles是一个 jQuery 对象,其字符串表示等于[object Object],也许你想要:var titles = $(this).contents().clone().prop('outerHTML');或var titles = $(this).contents().clone().html();。你只是忘了告诉你在找什么 -
您也可以使用
.wrap()用新容器包装内容。 -
@pointy @A。沃尔夫 谢谢你的回复。页面标题元素是带有内容的
<h3>标签。 -
@PatrickEvans 也许,不确定这里会发生什么
标签: javascript jquery html