我正在尝试理解为什么我的基本目录功能中的.wrap()
函数不起作用。该函数过滤来自textarea的标题并将它们放在iframe中,基本部分可以正常工作。但是我想要的输出是这样的:
<ul>
<li class="toc_h2">This is an h2</li>
<li class="toc_h3">This is an h3</li>
<li class="toc_h1">This is an h1</li>
</ul>
我实际得到的是:
<ul>
<h2>This is an h2</h2>
<h3>This is an h3</h3>
<h1>This is an h1</h1>
</ul>
我如何解决这个/我误解了什么?代码在此处http://jsfiddle.net/supertrue/JgWxJ/
headers.each(function(i) {
$(this).wrap('<li class="toc_' + this.nodeName.toLowerCase() + '"></li>').appendTo(toc);
});
答案 0 :(得分:1)
你可以改变这个:
$(this).wrap('<li class="toc_' + this.nodeName.toLowerCase() + '"></li>').appendTo(toc);
到此:
$('<li class="toc_' + this.nodeName.toLowerCase() + '"></li>').html(this).appendTo(toc);
这是你的小提琴:http://jsfiddle.net/JgWxJ/7/
或者,您可以在追加之前添加.parent()
:
$(this).wrap('<li class="toc_' + this.nodeName.toLowerCase() + '"></li>').parent().appendTo(toc);
...这里是小提琴:http://jsfiddle.net/JgWxJ/10/